我正在合并一个软件的两个分支,并且在合并过程中,一些代码保持这样:
if (b_flag)
DoSomething();
//MERGE
else
//ENDMERGE
DoOtherThing();
看到if / else块的断开连接?这就像做了什么?编译器会考虑使用换行符吗?
答案 0 :(得分:7)
是的,它会像它应该的那样工作。如果if
或else
没有花括号({}
),则下一个语句将被视为if的正文。插入换行符或注释不会改变DoSomething();或DoOtherThing();是这些陈述。
答案 1 :(得分:6)
即使注释像空白一样有效地处理,所以它会像“应该这样”一样工作。但是,在出现严重错误之前,您可能应该在此代码中添加大括号。
最后,有了额外的注释,一个人会错过else语句,或者更糟糕的是,一个额外的语句将被添加到“if block”中,而else语句将突然变成一个else语句,用于更高的嵌套if语句缺少别人。
一种好的风格是强制强制包含花括号,但最简单的情况除外。
答案 2 :(得分:2)
换行符与空格或制表符没有任何区别。顺便说一下,注释不被认为是语句 - 编译器会忽略它们。
编辑:新行重要的唯一时间是在C预处理器指令中,例如#define
。
答案 3 :(得分:1)
这与使用大括号完全相同。