GNU C的赋值扩展

在标准C中:linux

表达式    指   运算符和操做数的组合spa

复合语句 指 把一个或多个语句用 { } 括起来组成的一个语句,称 复合语句。(在程序中应把复合语句当作是单条语句,而不是多条语句。复合语句内的各条语句都必须以分号 ; 结尾code

举例:下面就是一个C 语言中的复合语句。io

{ 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内核中常被用于宏的定义中。语言

相关文章
相关标签/搜索