在标准C中:
表达式 指 运算符和操作数的组合
复合语句 指 把一个或多个语句用 { } 括起来组成的一个语句,称 复合语句。(在程序中应把复合语句看成是单条语句,而不是多条语句。复合语句内的各条语句都必须以分号 ; 结尾
举例:下面就是一个C 语言中的复合语句。
{ x=y+z; a=b+c; printf("%d%d",x,a); }
在GNU C中 ,允许 小括号 括起来的 复合语句 出现在一个表达式中
举例:
int a = ({ int b = 1;
int c =99;
b + c;
b + c - 10;
});
int c = 10;
注意 GNU C 中a 的值是 复合语句中最后一个语句的值,并且它的数据类型与最后一个语句的数据类型相匹配。而且b和c只存在于大括号限定的代码域中, 外面依旧可以再次用int c
// 这种特性(Statements and Declarations in Expressions)在linux内核中常被用于宏的定义中。