我有 2 段代码,我想知道使用其中任何一个的原因。两者都有效,但在 C 中这是一个好的做法?
选项1
Void GoodPractice()
{
bool flag;
if (right)
{
flag=1;
}
else
{
flag=0;
}
}
或者
选项 2
Void GoodPractice()
{
bool flag=0;
if (right)
{
flag=1;
}
}
让我知道为什么。谢谢。
我有 2 段代码,我想知道使用其中任何一个的原因。两者都有效,但在 C 中这是一个好的做法?
选项1
Void GoodPractice()
{
bool flag;
if (right)
{
flag=1;
}
else
{
flag=0;
}
}
或者
选项 2
Void GoodPractice()
{
bool flag=0;
if (right)
{
flag=1;
}
}
让我知道为什么。谢谢。
两者都不...
void GoodPractice()
{
bool flag = right;
// though I would return it ;)
}
bool flag = right != 0; // if you want to be more explicit
这两个代码示例在功能上是等效的,所以真正的区别在于风格。
但是,可能存在一个比另一个更清晰的情况。
例如,在一个简短的函数中,第二个选项是明确的,但如果bool flag=0在 if 语句和 if 语句之间有很多代码,那么第二个选项就不太清楚了。
正是出于这些原因,我已经使用了这两种方法。看看代码,这对你来说似乎更清楚。
这取决于你想做什么。
一般来说,第二个版本比第一个版本好,因为没有没有定义标志的代码部分。
Void GoodPractice()
{
bool flag=0;
// you can use flag
if (right)
{
flag=1;
}
}
Void NotAsGoodPractice()
{
bool flag;
// you can't use flag, because it has no defined value
if (right)
{
flag=1;
}
else
flag=0;
}
以我的拙见,我觉得这更好。
Void GoodPractice()
{
bool flag;
if (right)
{
flag=1;
}
else
{
flag=0;
}
}
是的,它增加了代码行数,并且可能需要额外的一两个 CPU 周期。
但我觉得,通过以清晰的方式编写代码,涵盖所有可能的逻辑类型,出错的可能性会更小。