iOS-詳細解讀Const

由于之前沒有使用過簡書,所以沒有使用markdown書寫 , 如果看著不方便,我之后又重新整理一份,看起來會整潔一點 . iOS-詳細解讀const - 簡書?



在過去開發(fā)中,幾乎每一個人都會定義宏,因為這東西實在是好用,省去了代碼量而且還不容易錯,而我這篇文中所介紹的const可以完美替帶宏定義.

并且蘋果也建議大家拋棄宏定義而轉(zhuǎn)投const ,并且swift里壓根就沒有宏定義這么一說,所以為了方便我們以后的開發(fā),還是盡早棄暗投明的好 .

進入正題我們先來說說,

- 1. const與宏的區(qū)別:

**(1)執(zhí)行時刻:宏是預(yù)編譯(編譯之前處理)拾稳,const是編譯階段散庶。

(2)編譯檢查:宏不做檢查,不會報編譯錯誤姓言,只是替換寻狂,const會編譯檢查岁经,會報編譯錯誤。

(3)宏可以定義一些函數(shù)蛇券,方法缀壤。 const不能。

(這里需要證實一點,宏不會開辟新的內(nèi)存空間 ,而是存放在常量區(qū),也就是正常使用并不會造成內(nèi)存暴漲 ).**

- 2.const作用:限制類型

- (1)const僅僅用來修飾右邊的變量(可以是基本數(shù)據(jù)變量p,也可以是指針變量*p)

- (2).被const修飾的變量是只讀的纠亚。

- 3.const的具體用法

只要記住一句話const只修飾右邊最近的基本變量

-? 示例: const:修飾基本變量p , 這里有兩種寫法并且意義相同

` const int b =20;`

`int const b =20;`

這里b是只讀變量不允許修改值 .

-? 需要注意下面兩句的區(qū)

const修飾指針常量

`int const *p1;? 則 *p1:常量(不可變)? ? p1:變量(可變)`

const修飾指針變量

`? int *const p;? 則*p1:變量? p1:常量(不可變)`

從上面看來,const的定義區(qū)間就一目了然了 ,只要看它后面跟的是否為指針,是則指針的指向就是不可改變的, 如果后面是變量則變量的值不可修改.

- 4.static與const聯(lián)合使用

- static與const作用:

(1)聲明一個只讀的靜態(tài)變量

那么為什么要改變?nèi)肿兞孔饔糜蛱聊剑饕菫榱朔乐怪貜?fù)聲明全局變量。 在開發(fā)中聲明的全局變量菜枷,有些不希望外界改動苍糠,只允許讀取。這時就需要兩者一起使用.

(2) 聲明一個靜態(tài)的全局只讀常量比如一個基本數(shù)據(jù)類型不希望別人改動則可使用? `static const int a = 10;`

(3)也可以用來代替宏啤誊,把一個經(jīng)常使用的字符串常量岳瞭,定義成靜態(tài)全局只讀變量.

(4)開發(fā)中經(jīng)常拿到key修改值,因此用const修飾key,表示key只讀蚊锹,不允許修改瞳筏。

`static? NSString * const key = @"name";`

`static? NSString const *key1 = @"name";`

現(xiàn)在應(yīng)該也可以分清這兩句的區(qū)別了吧!

- 5.**extern與const聯(lián)合使用**? VS? **static與const聯(lián)合使用**

- (1) static與const組合:只能在本文件中使用,如果多個文件同時使用,需要在每個文件都需要定義一份靜態(tài)全局變量。

- (2) extern與const組合:在多個文件中經(jīng)常使用的同一個字符串常量牡昆,可以使用extern與const組合姚炕。如果你需要一個全局變量就可以選擇

`extern? NSString * const key = @"name";`

`extern? NSString const *key1 = @"name";`

雖然這種做法很方便,但是如果多人開發(fā)可能會出現(xiàn)大家定義沖突,所以建議

通常搞一個文件,里面專門定義全局變量摊欠,統(tǒng)一管理,就可以避免定義沖突的情況了 .

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柱宦,一起剝皮案震驚了整個濱河市些椒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掸刊,老刑警劉巖免糕,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異忧侧,居然都是意外死亡石窑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門蚓炬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來松逊,“玉大人,你說我怎么就攤上這事肯夏【辏” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵熄捍,是天一觀的道長烛恤。 經(jīng)常有香客問我母怜,道長余耽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任苹熏,我火速辦了婚禮碟贾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘轨域。我一直安慰自己袱耽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布干发。 她就那樣靜靜地躺著朱巨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枉长。 梳的紋絲不亂的頭發(fā)上冀续,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音必峰,去河邊找鬼洪唐。 笑死,一個胖子當(dāng)著我的面吹牛吼蚁,可吹牛的內(nèi)容都是我干的凭需。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼粒蜈!你這毒婦竟也來了顺献?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤枯怖,失蹤者是張志新(化名)和其女友劉穎滚澜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫁怀,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡设捐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了塘淑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萝招。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖存捺,靈堂內(nèi)的尸體忽然破棺而出槐沼,到底是詐尸還是另有隱情,我是刑警寧澤捌治,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布岗钩,位于F島的核電站,受9級特大地震影響肖油,放射性物質(zhì)發(fā)生泄漏兼吓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一森枪、第九天 我趴在偏房一處隱蔽的房頂上張望视搏。 院中可真熱鬧,春花似錦县袱、人聲如沸浑娜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筋遭。三九已至,卻和暖如春暴拄,著一層夾襖步出監(jiān)牢的瞬間漓滔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工揍移, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留次和,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓那伐,卻偏偏與公主長得像踏施,于是被迫代替她去往敵國和親石蔗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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

  • 在過去開發(fā)中,幾乎每一個人都會定義宏,因為這東西實在是好用,省去了代碼量而且還不容易錯,而我這篇文中所介紹的con...
    建國FooSun閱讀 1,226評論 2 8
  • static 修飾局部變量 讓局部變量只初始化一次 局部變量在程序中只有一份內(nèi)存 并不會改變局部變量的作用域畅形,僅僅...
    大沖哥閱讀 1,353評論 0 1
  • ### const,static,extern簡介 ### 一养距、const與宏的區(qū)別(面試題): * `const...
    老騷鵝閱讀 655評論 0 7
  • 一、const與宏的區(qū)別(面試題): const簡介:之前常用的字符串常量日熬,一般是抽成宏棍厌,但是蘋果不推薦我們抽成宏...
    指尖猿閱讀 386評論 0 2
  • 一、const與宏的區(qū)別(面試題): const簡介:之前常用的字符串常量竖席,一般是抽成宏耘纱,但是蘋果不推薦我們抽成宏...
    Lucky丶晴閱讀 206評論 0 1