OC宏定義

usr/include


#空指令画饥,無(wú)任何效果

#include 包含一個(gè)源代碼文件

#define 定義宏

#undef 取消已定義的宏

#if 如果給定條件為真,則編譯下面代碼

#ifdef 如果宏已經(jīng)定義,則編譯下面代碼

#ifndef 如果宏沒有定義,則編譯下面代碼

#elif 如果前面的#if給定條件不為真,當(dāng)前條件為真祝拯,則編譯下面代碼

#endif 結(jié)束一個(gè)#if……#else條件編譯塊

#error 停止編譯并顯示錯(cuò)誤信息

資料來源:http://blog.csdn.net/wwwang89123/article/details/17436577


#define 是預(yù)處理命令,在編譯預(yù)處理時(shí)進(jìn)行簡(jiǎn)單的替換她肯,不作正確性檢查

typedef 是編譯時(shí)處理佳头,在自己的作用域內(nèi)給一個(gè)已經(jīng)存在的類型一個(gè)別名

宏定義只是簡(jiǎn)單的字符串代換(原地?cái)U(kuò)展)鹰贵,而typedef則不是原地?cái)U(kuò)展,它的新名字具有一定的封裝性康嘉,以致于新命名的標(biāo)識(shí)符具有更易定義變量的功能砾莱。請(qǐng)看上面第一大點(diǎn)代碼的第三行:

typedef??? (int*)????? pINT;以及下面這行:#define??? pINT2?? int*

效果相同?實(shí)則不同凄鼻!實(shí)踐中見差別:pINT a,b;的效果同int *a; int *b;表示定義了兩個(gè)整型指針變量。而pINT2 a,b;的效果同int *a, b;表示定義了一個(gè)整型指針變量a和整型變量b聚假。

注意:兩者還有一個(gè)行尾;號(hào)的區(qū)別哦块蚌!


宏的高級(jí)使用

1)__VA_ARGS__:總體來說就是將左邊宏中 ... 的內(nèi)容原樣抄寫在右邊 __VA_ARGS__ 所在的位置。它是一個(gè)可變參數(shù)的宏膘格,是新的C99規(guī)范中新增的峭范,目前似乎只有g(shù)cc支持(VC從VC2005開始支持)。要注意的是瘪贱,printf 的輸出格式是括號(hào)內(nèi)左邊是字符串纱控,右邊是變量,而且右變量與左輸出格式是一一對(duì)應(yīng)的菜秦。

2) __FILE__ :宏在預(yù)編譯時(shí)會(huì)替換成當(dāng)前的源文件名

3) __LINE__:宏在預(yù)編譯時(shí)會(huì)替換成當(dāng)前的行號(hào)

4) __FUNCTION__:宏在預(yù)編譯時(shí)會(huì)替換成當(dāng)前的函數(shù)名稱

PS:編譯過程:

1甜害,掃描解析文件

2,預(yù)處理(宏在此時(shí)處理球昨,該替換的文字會(huì)被替換)

3尔店,對(duì)處理過的源代碼進(jìn)行匯編,輸出匯編語(yǔ)言的代碼(C語(yǔ)言的控制流程被處理)

4主慰,編譯為二進(jìn)制目標(biāo)文件

5嚣州,與程序庫(kù)進(jìn)行鏈接,輸出最終的程序文件

(宏 和 C語(yǔ)言在不同的階段處理執(zhí)行)

參考官方:http://gcc.gnu.org/onlinedocs/cpp/Macros.html#Macros

在宏定義中共螺,如果要換行该肴,使用“\"符號(hào)。然后經(jīng)預(yù)處理后還是在同一行藐不。

使用"##"操作符可以實(shí)現(xiàn)宏中token的連接匀哄。

資料來源:http://blog.csdn.net/songrotek/article/details/8929963


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市佳吞,隨后出現(xiàn)的幾起案子拱雏,更是在濱河造成了極大的恐慌,老刑警劉巖底扳,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铸抑,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡衷模,警方通過查閱死者的電腦和手機(jī)鹊汛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門蒲赂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刁憋,你說我怎么就攤上這事滥嘴。” “怎么了至耻?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵若皱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我尘颓,道長(zhǎng)走触,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任疤苹,我火速辦了婚禮互广,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卧土。我一直安慰自己惫皱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布尤莺。 她就那樣靜靜地躺著旅敷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缝裁。 梳的紋絲不亂的頭發(fā)上扫皱,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音捷绑,去河邊找鬼韩脑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛粹污,可吹牛的內(nèi)容都是我干的段多。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼壮吩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼进苍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸭叙,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤觉啊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后沈贝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杠人,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嗡善。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辑莫。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖罩引,靈堂內(nèi)的尸體忽然破棺而出各吨,到底是詐尸還是另有隱情,我是刑警寧澤袁铐,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布揭蜒,位于F島的核電站,受9級(jí)特大地震影響剔桨,放射性物質(zhì)發(fā)生泄漏忌锯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一领炫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧张咳,春花似錦帝洪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至龙助,卻和暖如春砰奕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背提鸟。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工军援, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人称勋。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓胸哥,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赡鲜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子空厌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

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

  • 注:這是第三遍讀《C語(yǔ)言深度解剖》,想想好像自從大學(xué)開始就沒讀完過幾本書银酬,其中譚浩強(qiáng)的那本《C語(yǔ)言程序設(shè)計(jì)(第四版...
    HavenXie閱讀 1,733評(píng)論 1 6
  • 重點(diǎn)掌握 3 類對(duì)象和方法 對(duì)象就是一個(gè)物體 類的獨(dú)特存在就是一個(gè)實(shí)例嘲更,對(duì)實(shí)例進(jìn)行操作叫做方法。方法可以應(yīng)用于類或...
    Coder大雄閱讀 1,261評(píng)論 0 2
  • 簡(jiǎn)介 C++98/03的設(shè)計(jì)目標(biāo):一揩瞪、比C語(yǔ)言更適合系統(tǒng)編程(且與C語(yǔ)言兼容)赋朦。二、支持?jǐn)?shù)據(jù)抽象。三北发、支持面向?qū)ο?..
    認(rèn)真學(xué)計(jì)算機(jī)閱讀 5,328評(píng)論 0 53
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,160評(píng)論 30 470
  • 文 | 玥茗瑆茜 2017.09.28(01) 又是9月底纹因,又是氣溫驟降。自畢業(yè)至今琳拨,不多不少瞭恰,三年又余。故...
    玥茗瑆茜閱讀 201評(píng)論 0 0