【发布时间】:2022-01-01 08:51:01
【问题描述】:
有区别吗;
int main(){
return 0;
}
和
int main(){return 0;}
和
int main(){
return
0;
}
它们都可能编译为相同的可执行文件。 C/C++ 编译器如何处理多余的空格和换行符,以及换行符的处理方式是否与 C 代码中的空格不同?
另外,标签呢?如果有的话,在代码中使用制表符代替空格有什么意义?
【问题讨论】:
-
"它们都可能编译成同一个可执行文件" ==> "它们将全部编译成同一个可执行文件。"空白被忽略,除非代码需要在一行上,或者为了消除歧义,或者它是字符串文字的一部分。制表符是空格。
-
还值得一提的是,就像空格和新闻行一样,(1) cmets 和 (2) 变量名,也不会将其放入可执行文件中 - 所以请使用 then 并使其可读!
-
编译器对它们的处理与您阅读它们时的处理方式几乎相同,只是它不会像人们那样被奇怪的布局混淆。