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)。

posted @ 2015-12-31 16:18  zenny_chen  Views(336)  Comments(0Edit  收藏  举报