编译器是否将else-if的这些用法看作同一个东西?

时间:2014-12-18 13:07:03

标签: c if-statement

而不是这个 -

if(*condition1*){
    *statement/s*
}
else if(*condition2*){
    *some different statement/s*
}

如果使用 -

if(*condition1*){
        *statement/s*
}
else
    if(*condition2*){
        *some different statement/s*
    }

编译器是否将这两者视为相同的事物,因为空格在C中无关紧要,而第二ifelse语句相关联。

同样,对此,他们的意思是一样吗?

for(*initialization*;*condition*;*increment*)
    ;

和 -

for(*initialization*;*condition*;*increment*);

其中;是 null语句

如果是,那么为什么?

5 个答案:

答案 0 :(得分:2)

如果添加换行符或空格

,则无关紧要

答案 1 :(得分:2)

是和if语句是否相同。对于C,Space,换行并不重要。

答案 2 :(得分:1)

是。空间(除了它的存在之外)在C中确实是微不足道的。大多数C实现在lexing时收集空白。

答案 3 :(得分:1)

忽略所有前导和尾随空格。

答案 4 :(得分:1)

else if条件相同。 但是for循环是不同的,因为,

for(*initialization*;*condition*;*increment*)
                ;
在这之前;你可以让语句执行,然后执行。 但如果你指定;没有陈述,那么如果条件为真,则不会做任何事情。