共用方式為


複合陳述式 (C)

複合陳述式 (也稱為「區塊」) 通常會以另一個陳述式主體的形式出現,例如 if 陳述式。 宣告和類型會描述可能出現在複合陳述式開頭的宣告形式和意義。

語法

compound-statement
{ declaration-listopt statement-listopt }

declaration-list
declaration
declaration-list declaration

statement-list
statement
statement-list statement

如果出現宣告,則必須位於任何陳述式前面。 在複合陳述式開頭宣告之每個識別項的範圍,都會從其宣告點延伸至區塊結尾。 除非內部區塊中存在相同識別碼的宣告,否則整個區塊都可看到它。

除非以 registerstaticextern 另外明確宣告,否則複合陳述式中的識別碼會假設為 auto,但函式除外,函式只能是 extern。 您可以在函式宣告中省略 extern 規範,且函式仍會是 extern

如果變數或函式在複合陳述式中是以儲存類別 extern 宣告,則不會配置儲存體,且不允許初始化。 宣告會參考其他位置所定義的外部變數或函式。

在區塊中以 autoregister 關鍵字宣告的變數會重新配置,而且如有需要,會在每次進入複合陳述式時初始化。 這些變數在複合陳述式結束之後,不會再定義。 如果區塊內宣告的變數擁有 static 屬性,則變數會在程式開始執行時初始化,並且在程式執行過程中保留其值。 如需有關 static 的資訊,請參閱儲存類別

這個範例將示範複合陳述式:

if ( i > 0 )
{
    line[i] = x;
    x++;
    i--;
}

在這個範例中,如果 i 大於 0,則複合陳述式內的所有陳述式會依序執行。

另請參閱

陳述式