我有2段代码,我想知道使用其中任何一个的原因。这两个都有效,但这在C中是一个好习惯吗?
选项1
Void GoodPractice()
{
bool flag;
if (right)
{
flag=1;
}
else
{
flag=0;
}
}
OR
选项2
Void GoodPractice()
{
bool flag=0;
if (right)
{
flag=1;
}
}
让我知道为什么。 感谢。
答案 0 :(得分:1)
没有...
void GoodPractice()
{
bool flag = right;
// though I would return it ;)
}
答案 1 :(得分:0)
bool flag = right != 0; // if you want to be more explicit
答案 2 :(得分:0)
这两个代码示例在功能上都是等价的,所以真正的区别在于风格。
然而,可能存在一个比另一个更清晰的情况。
例如,在短函数中,第二个选项是明确的,但如果bool flag=0
和if语句之间存在大量代码,则第二个选项将不太清楚。
我完全用这两种原因。看看代码,这对你来说更清晰。
答案 3 :(得分:0)
这取决于你想做什么。
通常第二个版本比第一个版本好,因为没有代码部分没有定义标志。
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;
}
答案 4 :(得分:-1)
以我的拙见,我觉得这样更好。
Void GoodPractice()
{
bool flag;
if (right)
{
flag=1;
}
else
{
flag=0;
}
}
是的,它增加了代码行数,可能需要额外的CPU周期或两个。
但是我觉得,通过以清晰的方式编写代码来覆盖所有可能的逻辑类型,可以减少发生错误的可能性。