2010-05-02 118 views
52

extern關鍵字是指什麼意思?我看到,在一個函數聲明的面前就像extern關鍵字是指什麼意思?

extern void DoFoo ... 
+0

鋸'extern',字符串用一個'@「」'便捷構造在相應的.m(實現)文件中定義。 – Prairiedogg 2010-05-10 09:30:51

+1

發現此鏈接非常有用 - http://en.wikipedia.org/wiki/External_variable – itsaboutcode 2012-03-26 14:49:05

+0

可能的重複:[有關在Objective-C項目中使用的extern的3個問題](http://stackoverflow.com/q/7330048/ 45249) – mouviciel 2013-10-31 06:34:25

回答

39

extern給出名稱外部聯動。這意味着該對象或函數可以通過程序中其他翻譯單元的名稱訪問。對於函數,這是任何情況下的默認鏈接,所以它的用法(在這種情況下)通常是多餘的。

39

extern關鍵字聲明一個變量或函數,並指定具有外部鏈接(它的名字是從不同於它的定義的其他文件可見) 。當修改變量時,extern指定該變量具有靜態持續時間(當程序開始時分配,當程序結束時釋放)。變量或函數可以在另一個源文件中定義,或稍後在同一個文件中定義。默認情況下,文件範圍內變量和函數的聲明是外部的。

你可以找到一個more complete description here

2

對於初學者來說,

起初我很困惑地發現,「extern關鍵字聲明一個變量或函數,並指定具有外部鏈接」由@Romain Hippeau。

現在我明白了,我們將能夠通過extern關鍵字與其他類共享我們的變量。

例如: Notification.h

enter image description here

Notification.m

enter image description here

沒有extern關鍵字通知常數將創建下面的錯誤。在目標C h文件聲明的指針`NSString` enter image description here