宣告有兩種,一種是定義性宣告簡稱定義,還有一種就是宣告,在使用變數之前一定要對其進行宣告(專門為編譯器而做),為了宣告變數,首先要指定變數的宣告說明符和宣告符,有時也會賦予初始化值,然後再加上分號。注意宣告一定要放在使用該變數的語句前面,標準c更加嚴格,必須要放在程式的開頭處。看下面乙個例子:
auto
const
char ch;
粉紅色的為宣告說明符,灰色的為宣告符(在規則內可以隨便寫)。
0.1.2.0 宣告說明符
宣告說明符分為三類:
1、儲存型別:auto,static,extern,register。(注意在宣告中最多出現一種儲存型別,如果有則必須把它放在最前面)
2、型別限定符:const,volatile,restrict(c99).
3、型別說明符:void,char,float,int,double…
這些符號到底影響什麼東西哪?沒錯就是變數的性質,請看下列:
儲存型別
注意:register 變數必須是乙個單個的值,並且其長度應小 於或等於整型的長度。 而且 register 變數可能不存放在記憶體中,所以不能用取址運算子「&」 來獲取 register 變數的位址。
型別限定
型別說明符(空白為不確定)
0.1.2.1 宣告符
宣告符包含識別符號,還包含識別符號前面可能帶有的*號,後面可能帶有的[ ]和()。看下面幾個例子。
\\指標
int*p;
int(
*p)[2]
;int
(*p)
(int);
int*
*p;\\陣列
int a[10]
;int a[10]
[10];
int*a[10]
;\\函式
intf
(void);
\\結構
struct
;
以上是幾種比較常見的宣告,再看下面這個例子
int
(*p[10]
)(int)
;
對於這種一眼看不出來的宣告我在 一本書上學到乙個方法不錯,這個方法有兩個要點:
1、始終由內往外讀宣告符。
2、在做選擇時,始終使[ ]和()大於*
我們來分析一下下面的例子:
所以p為儲存指向引數型別為int型返回型別為int型函式指標的陣列。
C語言整型宣告方式及說明符
說明符 包含了一些關鍵字,用於描述被宣告的識別符號的基本型別。如 signed long int等。signed關鍵字一般只用於char型別,因為其他型別在預設的情況下都是有符號數,signed將這個範圍擴至 127 127。而char的預設範圍因編譯器而異。所以char可能等於signed cha...
8 3 宣告符的含義
1 宣告符列表出現在可選的 第7章 decl specifier seq 7.1 之後。每個宣告符只能包含乙個 declarator id 它對被宣告的識別符號進行命名。除了特殊函式 12.3,12.4,13.5 宣告 模板特化或區域性特化 14.7 宣告之外,declarator id 中的unq...
報錯 此宣告沒有儲存類或型別說明符
在學習案例的時候遇到乙個知識點,順手在原始檔空白處編輯了一段,發現vs開始報錯 嚴重性說明 錯誤 活動 此宣告沒有儲存類或型別說明符 在函式體外進行賦值的時候就會出現這個問題。比如out type convert const in value t sample2 double d string sa...