c的宣告有時候很複雜,不了解規則的人可能會對複雜的c宣告極為反感,但是如果了解了c宣告的基本優先順序規則。
那麼弄清楚c宣告就是易如反掌的事情了。
c宣告的規則如下:
a: 宣告從它的名字開始讀取,然後按照優先順序順序依次讀取。
b: 優先順序從高到低依次是:
b.1 宣告中被括號括起來的那部分
b.2 字尾操作符:
括號()表示這是乙個函式,而方括號表示這是乙個陣列.
b.3 字首操作符:星號*表示 "指向...的指標".
c: 如果const和(或)volatile關鍵字的後面緊跟型別說明符(如int,long等 ),那麼它作用於型別說明符.在其他情況下,
const和(或)volatile關鍵字作用於它左邊緊鄰的指標星號.
如: linux中的signal()宣告如下:
void (*signal(int sig,void (*func)(int))) (int);
根據規則得出這個宣告的意思:signal是乙個函式,它返回乙個函式指標,而這個指標所指向的函式接受乙個int引數並返回void.其中我們沒有介紹signal的引數,它的引數有兩個
乙個是int型的sig,另乙個引數void (*func)(int),這個引數的意思是:它表示func是乙個指標,它指向乙個函式,而這個函式有乙個int型 的引數,並且返回值是void.
這樣我們根據基本的規則就可以把乙個複雜的函式宣告拆開來分析,最終完全理解它的意思.其實很簡單.只是看起來有一點複雜而已.
C宣告的優先順序規則
c宣告的優先順序規則 a 宣告從它的名字開始讀取,然後按照優先順序順序依次讀取 b 優先順序從高到低依次是 b.1 宣告中被括號括起來的那部分 b.2 字尾操作符 括號 表示這是乙個函式,而方括號 表示這是乙個陣列 b.3 字首操作符 星號 表示 指向 的指標 c 如果const和 或 volati...
C語宣告的優先順序規則
要理解乙個宣告,必須懂得其中的優先順序規則 優先順序規則 a 從宣告的最左邊開始向右尋找,直到找到第乙個識別符號,然後按照下面的優先順序順序依次讀取 b 優先順序順序從高到低依次是 b.1 宣告中被括號括起來的那部分 識別符號包含在括號中 當成乙個整體,先處理括號內的 b.2 字尾操作符 圓括號 表...
C語言宣告優先順序規則
a 宣告從它的名字開始讀取,然後按照優先順序順序依次讀取。b 優先順序從高到低依次是 b.1 宣告中被括號括起來的部分 b.2 字尾操作符 括號 表示這是乙個 函式,而方括號表示這是乙個陣列 b.3 字首操作符 號表示 指向.的指標 c 如果const和 或 volatile關鍵字的後面緊跟型別說明...