關(guān)于FOUNDATION_EXTERN #define extern

前言:
日日擼碼狸驳,臣服于業(yè)務(wù)。以前看一些第三方庫(kù)缩赛,發(fā)現(xiàn)人家?guī)熘羞@么使用耙箍,沒(méi)有在意。突然發(fā)現(xiàn)公司大神也這樣寫(xiě)的代碼酥馍,一副沒(méi)見(jiàn)過(guò)世面的樣子辩昆,尷尬五分鐘、旨袒、汁针、、
發(fā)現(xiàn)自己真實(shí)low的一匹砚尽。趕快學(xué)習(xí)一下施无,還是被老夫挖掘出來(lái)一些好的文章,備以后查閱必孤。


FOUNDATION_EXTERN

#if defined(__cplusplus)
#define FOUNDATION_EXTERN extern "C"
#else
#define FOUNDATION_EXTERN extern
#endif

總結(jié):

由以上定義可以看出 FOUNDATION_EXTERN 是可以兼容C++的extern的宏猾骡。同樣也可以推測(cè)出 extern "C" 也就是用來(lái)兼容C++里面的extetrn的。

表示extern全局變量敷搪,此時(shí)并沒(méi)有分配內(nèi)存兴想,需要在.m文件中實(shí)現(xiàn)。
此時(shí)為了支持C和C++混編(__cplusplus 是C++編譯器內(nèi)部定義的宏购啄,在C++中襟企,需要加 extern"C" 或包含在 extern "C" 塊中)

注意,此時(shí)外界是可以修改這個(gè)值狮含。

用法:

//.h
FOUNDATION_EXPORT NSString * const kMyConstantString;  
FOUNDATION_EXPORT NSString * const kMyConstantString2;
//.m
NSString * const kMyConstantString = @"Hello";
NSString * const kMyConstantString2 = @"World";


define

#define kMyConstantString @"Hello World"

FOUNDATION_EXTERN 和 define區(qū)別:

在檢測(cè)字符串的值是否相等的時(shí)候:

  • 使用FOUNDATION_EXTERN更快,直接使用(stringInstance == MyFirstConstant)來(lái)比較,
    比較的是指針地址

  • 使用define稍慢顽悼,使用的是這種([stringInstance isEqualToString:MyFirstConstant])
    比較字符串的每一個(gè)字符是否相等.

FOUNDATION_EXPORT && FOUNDATION_IMPORT

#if TARGET_OS_WIN32
 
    #if defined(NSBUILDINGFOUNDATION)
        #define FOUNDATION_EXPORT FOUNDATION_EXTERN __declspec(dllexport)
    #else
        #define FOUNDATION_EXPORT FOUNDATION_EXTERN __declspec(dllimport)
    #endif
 
    #define FOUNDATION_IMPORT FOUNDATION_EXTERN __declspec(dllimport)
 
#else
    #define FOUNDATION_EXPORT  FOUNDATION_EXTERN
    #define FOUNDATION_IMPORT FOUNDATION_EXTERN
#endif

我們?cè)趇OS編程中一般是很少用到這兩個(gè)宏曼振,這兩個(gè)是用來(lái)兼容win32應(yīng)用程序的,
為了兼容C++的編程蔚龙,因?yàn)樵贑++的編程中是存在兩種定義的

__declspec(dllexport) ? ? ? ? ? ? ?
__declspec(dllimport)
dllexport和dllimport的區(qū)別請(qǐng)看參考文章中的詳細(xì)介紹

NSObjCRuntime.h中你不知道的宏

帶挖掘續(xù)寫(xiě).....

參考地址:
應(yīng)該使用FOUNDATION_EXPORT還是#define來(lái)定義常量?
c++ 中__declspec 的用法
NSObjCRuntime.h中你不知道的宏

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末冰评,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子木羹,更是在濱河造成了極大的恐慌甲雅,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坑填,死亡現(xiàn)場(chǎng)離奇詭異抛人,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)脐瑰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)妖枚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人苍在,你說(shuō)我怎么就攤上這事绝页。” “怎么了寂恬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵续誉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我初肉,道長(zhǎng)酷鸦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任牙咏,我火速辦了婚禮井佑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘眠寿。我一直安慰自己躬翁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布盯拱。 她就那樣靜靜地躺著盒发,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狡逢。 梳的紋絲不亂的頭發(fā)上宁舰,一...
    開(kāi)封第一講書(shū)人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音奢浑,去河邊找鬼蛮艰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛雀彼,可吹牛的內(nèi)容都是我干的壤蚜。 我是一名探鬼主播即寡,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼袜刷!你這毒婦竟也來(lái)了聪富?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤著蟹,失蹤者是張志新(化名)和其女友劉穎墩蔓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體萧豆,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奸披,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涮雷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片源内。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖份殿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗽交,我是刑警寧澤卿嘲,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站夫壁,受9級(jí)特大地震影響拾枣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盒让,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一梅肤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧邑茄,春花似錦姨蝴、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至同木,卻和暖如春浮梢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背彤路。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工秕硝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人洲尊。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓远豺,卻偏偏與公主長(zhǎng)得像奈偏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子憋飞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容