gpt4 book ai didi

c - 为什么可以在 C 中使用多个分号?

转载 作者:太空狗 更新时间:2023-10-29 16:45:56 26 4
gpt4 key购买 nike

在 C 中,我可以执行以下操作:

int main()
{
printf("HELLO WORLD");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
}

而且有效!这是为什么?

我个人的想法:分号是一个 NO OPERATION(来自维基百科)指示器,拥有一大串分号与拥有一个分号并告诉 C 语句已结束的想法相同。

最佳答案

一个分号终止一条语句...连续的分号表示无操作语句(如您所说)。考虑:

while (x[i++] = y[j++])
;

这里,所有的工作都是在循环测试条件下完成的,所以空语句是可取的。但是,即使没有控制循环,也允许空语句。

为什么?

好吧,预处理器的许多用途可能会扩展到一些实际的 C 代码,或者根据一些早期的定义被删除,但是给定...

 MY_MACRO1();
MY_MACRO2();

...预处理器只能替换 MY_MACROX() 文本,将尾随分号留在那里,可能在空语句之后。如果编译器拒绝了它,那么使用预处理器会更加困难,或者预处理器调用将不太像非预处理器函数调用(它们必须在替换中输出分号,并且调用者必须避免尾随分号当使用它们时)——这将使实现更难以为性能、调试和定制目的无缝地用聪明的宏替换函数。

关于c - 为什么可以在 C 中使用多个分号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com