非靜態聲明考慮這些例子:下面的靜態聲明
static int a;
extern int a; //OK -- what linkage does the a have now?
static int a;
int a; //ERROR
extern int a;
static int a; //ERROR
int a;
static int a; //ERROR
extern int a;
int a; //OK as expected
int a;
extern int a; //OK as expected
爲什麼它是在第一個例子確定,但不是在第二?
就文件範圍變量(全局範圍)而言,當沒有指定關鍵字時,它們具有外部鏈接和靜態持續時間。
謝謝
據我所知,連接和存儲持續時間功能是一個有點不同。
編輯: 我嘗試用gcc 4.5.2編譯-Wall -pedantic --std = C99
更多:http://c-faq.com/decl/static.jd.html你可以看到,第一個例子在那裏工作過,但第二次卻沒有。但是,我不明白是什麼讓他們如此不同。
你可以更多地回答你的問題嗎?因爲在你第一次關心你評論確定,但是會產生一個錯誤,說「靜態聲明'a'遵循非靜態聲明」 – 2011-08-30 05:56:34