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內核中常被用於宏的定義中。語言

相關文章
相關標籤/搜索