宣告子和變數宣告
本節其餘部分將說明在這份清單中摘要說明之變數類型宣告的形式和意義。 特別要提的是,其餘各節將說明如何宣告:
變數類型 | 描述 |
---|---|
簡單變數 | 使用整數或浮點類型的單一值變數 |
陣列 | 由具有相同類型之項目集合組成的變數 |
指標 | 指向其他變數並包含變數位置 (採用位址的形式) 而不是值的變數 |
列舉變數 | 具有整數資料類型的簡單變數,其中會保存一個來自一組具名整數常數的值 |
結構 | 由值集合所組成的變數可以採用不同的類型。 |
等位 | 由數個佔用相同儲存空間之不同類型的值所組成的變數 |
宣告子 是宣告的一部分,用於指定要引入程式的名稱。 它可能包含修飾詞如 *
(指標) 和任何 Microsoft 呼叫慣例關鍵字。
Microsoft 特定的
在此宣告子中,
__declspec(thread) char *var;
char
為類型指定名稱,__declspec(thread)
和 *
是修飾詞,而 var
為識別碼的名稱。
END Microsoft 特定的
您可以使用宣告子來宣告值的陣列、值的指標,以及傳回指定類型值的函式。 宣告子會出現在陣列和指標宣告中,將於本節稍後說明。
語法
declarator
:
pointer
opt direct-declarator
direct-declarator
:
identifier
(
declarator
)
direct-declarator
[
constant-expression
opt ]
direct-declarator
(
parameter-type-list
)
direct-declarator
(
identifier-list
opt )
pointer
:
*
type-qualifier-list
opt
*
type-qualifier-list
opt pointer
type-qualifier-list
:
type-qualifier
type-qualifier-list
type-qualifier
當宣告子包含未修改的識別項時,要宣告的項目會具有基底類型。 如果識別碼的左邊出現一個星號 (*
),表示會將類型修改為指標類型。 如果識別碼的後面接著一個方括弧 ([ ]
),表示這個類型已修改為陣列類型。 如果識別碼後接著括弧,則該類型將會修改為函式類型。 如需解譯宣告中優先順序的詳細資訊,請參閱解譯更複雜的宣告子 (部分機器翻譯)。
每個宣告子至少會宣告一個識別項。 宣告子必須包含類型指定名稱,才是一個完整的宣告。 類型指定名稱會指定陣列類型的元素類型、以指標類型定址的物件類型,或是函式的傳回型別。
陣列和指標宣告將於本節中稍後詳細討論。 下列範例說明宣告子的一些簡單形式:
int list[20]; // Declares an array of 20 int values named list
char *cp; // Declares a pointer to a char value
double func( void ); // Declares a function named func, with no
// arguments, that returns a double value
int *aptr[10]; // Declares an array of 10 pointers
Microsoft 特定的
Microsoft C 編譯器並不會限制可修改算術、結構或等位型別的宣告子數目。 這些數目只會受到可用記憶體的限制。
END Microsoft 特定的