在C语言中我可以做以下事情:
int main() { printf("HELLO WORLD");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; }
而且很管用,为什么我个人的想法:分号是一个NO OPERATION(来自Wikipedia)指示符,拥有一个巨大的分号字符串就像拥有一个分号并告诉C语句已经结束一样。
lmyy7pcs1#
两个分号合起来就是一个空语句。C不介意有空语句--它们不会生成任何代码。
k2fxgqgv2#
因为在C语言中分号标识语句的结尾,而在你的例子中,更多的分号标识更多的空语句......没有错,它们只是空语句。
az31mfrm3#
分号是行终止符,表示代码已到达行尾,然后执行下一行代码。一个证据是,您可以在一行中编写代码,不包括指令。
main() { cout << "ENTER TWO NUMBERS"; cin >> a; cin >> b; cout << "The sum of two numbers are" << a+b; << return 0;}
这可能意味着main(){ cout〈〈“输入两个数字”[THEN] cin〉〉a[THEN] cin〉〉b[THEN] cout〈〈“两个数字的和为”〈〈a+b[THEN]〈〈return 0[THEN]}所以如果你要放置多个分号,就像,一个THEN,THEN,THEN,THEN,你个人的想法确实是正确的。
b4lqfgs44#
分号终止语句......连续的分号表示无操作语句(如您所说)。请考虑:
while (x[i++] = y[j++]) ;
这里,所有的工作都在循环测试条件中完成,所以空语句是可取的。但是,即使没有控制循环,也允许空语句。为什么?好吧,预处理器的许多用途可能会扩展到一些实际的C代码,或者根据一些早期的定义被删除,但鉴于...
MY_MACRO1(); MY_MACRO2();
...预处理器只能替换MY_MACROX()文本,并将尾部的分号留在那里,可能在一个空语句之后。如果编译器拒绝这样做,则使用预处理器会困难得多,或者预处理器调用将不太像非预处理器函数调用(他们必须在替换中输出分号,并且调用者在使用它们时必须避免尾部的分号)-这将使得实现更难为了性能而不恰当地用聪明的宏替换函数,调试和定制的目的。
MY_MACROX()
eivnm1vs5#
C语言允许空语句。它们对于空循环之类的事情很有用:
while (*d++ = *s++) ; // null statement.
您刚刚创建了一系列的对象。它还允许非完全空的语句,如:
0; 1+1;
这两个函数都包含表达式,但没有副作用,所以它们实际上不做任何事情。它们是允许的,尽管编译器可能会警告它们。一个好的编译器通常不会为上述任何一个生成任何代码(大多数编译器甚至不会在关闭优化的情况下生成代码,我无法想象一个编译器会在打开优化的情况下生成代码)。
5条答案
按热度按时间lmyy7pcs1#
两个分号合起来就是一个空语句。C不介意有空语句--它们不会生成任何代码。
k2fxgqgv2#
因为在C语言中分号标识语句的结尾,而在你的例子中,更多的分号标识更多的空语句......没有错,它们只是空语句。
az31mfrm3#
分号是行终止符,表示代码已到达行尾,然后执行下一行代码。
一个证据是,您可以在一行中编写代码,不包括指令。
这可能意味着main(){ cout〈〈“输入两个数字”[THEN] cin〉〉a[THEN] cin〉〉b[THEN] cout〈〈“两个数字的和为”〈〈a+b[THEN]〈〈return 0[THEN]}
所以如果你要放置多个分号,就像,一个THEN,THEN,THEN,THEN,你个人的想法确实是正确的。
b4lqfgs44#
分号终止语句......连续的分号表示无操作语句(如您所说)。请考虑:
这里,所有的工作都在循环测试条件中完成,所以空语句是可取的。但是,即使没有控制循环,也允许空语句。
为什么?
好吧,预处理器的许多用途可能会扩展到一些实际的C代码,或者根据一些早期的定义被删除,但鉴于...
...预处理器只能替换
MY_MACROX()
文本,并将尾部的分号留在那里,可能在一个空语句之后。如果编译器拒绝这样做,则使用预处理器会困难得多,或者预处理器调用将不太像非预处理器函数调用(他们必须在替换中输出分号,并且调用者在使用它们时必须避免尾部的分号)-这将使得实现更难为了性能而不恰当地用聪明的宏替换函数,调试和定制的目的。eivnm1vs5#
C语言允许空语句。它们对于空循环之类的事情很有用:
您刚刚创建了一系列的对象。
它还允许非完全空的语句,如:
这两个函数都包含表达式,但没有副作用,所以它们实际上不做任何事情。它们是允许的,尽管编译器可能会警告它们。
一个好的编译器通常不会为上述任何一个生成任何代码(大多数编译器甚至不会在关闭优化的情况下生成代码,我无法想象一个编译器会在打开优化的情况下生成代码)。