IOS基礎(chǔ)之宏定義

宏定義#define:
定義和使用同C

/ :表示換行
# :字符串操作符谒拴,用于將參數(shù)序列化成一個(gè)字符串;
## :連接符涉波,用于將相鄰的兩個(gè)標(biāo)記(Token)連接為一個(gè)英上。使用是分隔(根據(jù)空格或其他操作分隔符[+,-,*,/,”,”等]),再?gòu)?qiáng)制連接(去掉和前面的字符串間的空格啤覆,再連接起來(lái))苍日。
@# :字符化操作符,只能用于有參數(shù)傳入的宏定義中窗声,必須置于宏定義體參數(shù)名前相恃,作用是將傳入的單字符參數(shù)名轉(zhuǎn)換成字符,以一對(duì)單引號(hào)括起來(lái)笨觅。
可變參數(shù)宏:#define DBGMSG(format, ...) fprintf (stderr, format, __VA_ARGS__)
… 表示一個(gè)可變化的參數(shù)表拦耐,變參必須放于最后一個(gè)參數(shù)耕腾;
__VA_ARGS__:參數(shù)標(biāo)識(shí)符。調(diào)用時(shí)會(huì)替代函數(shù)形參里的最后一個(gè)變參杀糯;
#pragma:說(shuō)明編譯器信息
_Pragma:同#pragma扫俺,但功能更強(qiáng)大;
#warning:顯示編譯警告信息
#error:顯示編譯錯(cuò)誤信息
#line:標(biāo)志該語(yǔ)言的行號(hào)
【可變參數(shù)宏不被ANSI/ISO C++所支持固翰,iOS支持】

C語(yǔ)言中預(yù)定義宏:
__FILE__ :當(dāng)前源代碼的文件名(字符串)
__LINE__:當(dāng)前源代碼中的行號(hào)(整型)
__DATE__:進(jìn)行預(yù)處理的日期(”Mmm dd yyyy”形式的字符串)
__TIME__:源文件編譯時(shí)間(格式“hh:mm:ss”)
__FUNCTION__:同__func__(但I(xiàn)DE不支持)狼纬,當(dāng)前源代碼的函數(shù)名
__PRETTY_FUNCTION__:同__FUNCITON__,但在g++下會(huì)輸類名倦挂、函數(shù)名及其他函數(shù)信息
例:

#ifdef __OBJC__ //表示下面定義的宏內(nèi)容只被使用Oc語(yǔ)言的文件所引用 
#ifdef DEBUG
//debug環(huán)境畸颅,在調(diào)用NSLog后,自動(dòng)將參數(shù)拼接后再使用系統(tǒng)的NSLog打印
#define NSLog(str, ...)  NSLog(@"%s(%d): " str, __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define NSLog(...) {}//正式環(huán)境方援,調(diào)用到NSLog后没炒,不做操作
#endif
#define BLOCK_EXEC(block, ...) if (block) { block(__VA_ARGS__); };
//在執(zhí)行block前判空,若一個(gè)空的block執(zhí)行,會(huì)出現(xiàn)EXEC_BAD_ACCESS異常

宏定義(define)與常量(const)的使用:

宏定義:#define NAME @“fansion” //只在預(yù)處理里做文本替換犯戏,沒(méi)有類型送火,不做類型檢查。大量使用宏會(huì)導(dǎo)致二進(jìn)制文件變大

變量:NSString *NAME = @“fansion”先匪;//共享一塊內(nèi)存空間种吸,若項(xiàng)目中N處用到,也不會(huì)分配N塊內(nèi)存空間呀非,可被修改坚俗,在編譯階段會(huì)檢查類型

常量:(四種方式)\共享一塊內(nèi)存空間

局部常量:static const NSString *NAME = @“fansion”;//用static修飾后外部不能訪問(wèn)

全局常量:不管在哪個(gè)文件夾,外部都能訪問(wèn)岸裙;
const NSString *NAME = @“fansion”;//*NAME不能被修改猖败,NAME可以
NSString const *NAME = @“fansion”;//*NAME不能被修改,NAME可以
NSString *const NAME = @“fansion”;//*NAME能被修改降允,NAME不可以
const位置不同恩闻,代表的意義不同;const只修飾右邊的內(nèi)容剧董,即右邊的內(nèi)容不能被修改幢尚。

【可認(rèn)為*是一個(gè)分界,把一個(gè)聲明從右向左讀翅楼。如:const char *p即:p is a pointer to a const char(常量字符)尉剩;char * const p即:p is a const pointer(常量指針) to a char】

博客地址:IOS基礎(chǔ)之宏定義

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市毅臊,隨后出現(xiàn)的幾起案子理茎,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件功蜓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宠蚂,警方通過(guò)查閱死者的電腦和手機(jī)式撼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)求厕,“玉大人著隆,你說(shuō)我怎么就攤上這事⊙窖ⅲ” “怎么了美浦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)项栏。 經(jīng)常有香客問(wèn)我浦辨,道長(zhǎng),這世上最難降的妖魔是什么沼沈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任流酬,我火速辦了婚禮,結(jié)果婚禮上列另,老公的妹妹穿的比我還像新娘芽腾。我一直安慰自己,他們只是感情好页衙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布摊滔。 她就那樣靜靜地躺著,像睡著了一般店乐。 火紅的嫁衣襯著肌膚如雪艰躺。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天响巢,我揣著相機(jī)與錄音描滔,去河邊找鬼。 笑死踪古,一個(gè)胖子當(dāng)著我的面吹牛含长,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伏穆,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拘泞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了枕扫?” 一聲冷哼從身側(cè)響起陪腌,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后诗鸭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體染簇,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年强岸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锻弓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蝌箍,死狀恐怖青灼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妓盲,我是刑警寧澤杂拨,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站悯衬,受9級(jí)特大地震影響弹沽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜筋粗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一贷币、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亏狰,春花似錦役纹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至策州,卻和暖如春瘸味,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背够挂。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工旁仿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人孽糖。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓枯冈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親办悟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尘奏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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

  • 1.項(xiàng)目經(jīng)驗(yàn) 2.基礎(chǔ)問(wèn)題 3.指南認(rèn)識(shí) 4.解決思路 ios開(kāi)發(fā)三大塊: 1.Oc基礎(chǔ) 2.CocoaTouch...
    陽(yáng)光的大男孩兒閱讀 4,984評(píng)論 0 13
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛(ài)閱讀 1,976評(píng)論 0 7
  • 多線程、特別是NSOperation 和 GCD 的內(nèi)部原理病蛉。運(yùn)行時(shí)機(jī)制的原理和運(yùn)用場(chǎng)景炫加。SDWebImage的原...
    LZM輪回閱讀 2,007評(píng)論 0 12
  • C中的預(yù)編譯宏定義 2009-02-10 作者: infobillows 來(lái)源:網(wǎng)絡(luò) 在將一個(gè)C源程序轉(zhuǎn)換為可執(zhí)行...
    白水灬煮一切閱讀 1,590評(píng)論 0 5
  • 隔一程山水瑰煎,你,青衫依舊俗孝,打馬過(guò)河山酒甸;裙裾飛揚(yáng),發(fā)梢隨風(fēng)亂赋铝『娲欤花海飄香,芳草葳蕤柬甥;清風(fēng)瘦月,迷蝶光影其垄。與我坐望于光陰...
    狂飲鴆迷戀閱讀 571評(píng)論 0 0