ISO/IEC 9899:2011 条款6.8.3——表达式与空语句
6.8.3 表达式与空语句
语法
1、expression-statement:
expressionopt ;
语义
2、在一条表达式语句中的表达式被计算为一个void表达式作为其副作用。[注:诸如赋值语句以及函数调用,它们所具有的副作用。]
3、一条空语句(仅由一个分号组成)不执行任何操作。
4、例1 如果一个函数调用被计算为仅作用于它的副作用的一条表达式语句,那么可以通过将该表达式转换为一条void表达式,显式地将其值丢弃掉,通过如下投射操作:
int p(int); /* ... */ (void)p(0);
5、例2 在以下程序片段中
char *s; /* ... */ while (*s++ != '\0') ;
一条空语句被用于给迭代语句提供一个空循环体。
6、例3 一条空语句也可以用来携带一个标签,仅在一条复合语句的封闭的 } 之前。
while (loop1) { /* ... */ while (loop2) { /* ... */ if( want_out) goto end_loop1; /* ... */ } /* ... */ end_loop1: ; }
进一步可参考迭代语句(6.8.5)。