6.8.4 表达式语句和空语句
语法
形式化语法
bnf
expression-statement:
expressionopt ;
attribute-specifier-sequence expression ;1
2
3
2
3
语义
- 属性说明符序列归属于该表达式。
- 表达式语句中的表达式会作为
void表达式求值,只保留其副作用。 - 空语句仅由一个分号组成,不执行任何操作。
示例
示例 1
如果一个函数调用只为了副作用而作为表达式语句求值,那么可以通过显式转换为 void 表达式,清楚表明其返回值被丢弃:
c
int p(int);
/* ... */
(void)p(0);1
2
3
2
3
示例 2
在下面的程序片段中,空语句用作循环体:
c
char *s;
/* ... */
while (*s++ != '\0')
;1
2
3
4
2
3
4