欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解IOS宏與常量的使用(define,const)

 更新時(shí)間:2017年12月01日 11:12:43   投稿:laozhang  
這篇文章主要介紹了詳解IOS宏define與常量const的使用方法,適合IOS程序員參考,一起來(lái)學(xué)習(xí)下。

小編給大家整理了關(guān)于IOS中宏(define)與常量(const)的正確使用方法,有助于大家更加深入的理解這方面的內(nèi)容。

當(dāng)我們想全局共用一些數(shù)據(jù)時(shí),可以用宏、變量、常量

宏:

#define HSCoder @"漢斯哈哈哈"

變量:

NSString *HSCoder = @"漢斯哈哈哈";

常量:

四種寫(xiě)法:
static const NSString *HSCoder = @"漢斯哈哈哈";
const NSString *HSCoder = @"漢斯哈哈哈";
NSString const *HSCoder = @"漢斯哈哈哈";
NSString * const HSCoder = @"漢斯哈哈哈";

const修飾的位置不同代表不同的意思:

NSString const * 和 NSString * const 不同在于前者相當(dāng)于指針指向的內(nèi)容不可修改,后者表示指針本身不可修改

有時(shí)候會(huì)遇到:

const NSString *就會(huì)遇到警報(bào):

改成NSString * const就不會(huì)了。說(shuō)明兩者是不同的。

思考:宏與常/變量的選擇?

宏:只是在預(yù)處理器里進(jìn)行文本替換,沒(méi)有類(lèi)型,不做任何類(lèi)型檢查,編譯器可以對(duì)相同的字符串進(jìn)行優(yōu)化。只保存一份到 .rodata 段。甚至有相同后綴的字符串也可以?xún)?yōu)化,你可以用GCC 編譯測(cè)試,"Hello world" 與 "world" 兩個(gè)字符串,只存儲(chǔ)前面一個(gè)。取的時(shí)候只需要給前面和中間的地址,如果是整形、浮點(diǎn)型會(huì)有多份拷貝,但這些數(shù)寫(xiě)在指令中。占的只是代碼段而已,大量用宏會(huì)導(dǎo)致二進(jìn)制文件變大

變量:共享一塊內(nèi)存空間,就算項(xiàng)目中N處用到,也不會(huì)分配N(xiāo)塊內(nèi)存空間,可以被修改,在編譯階段會(huì)執(zhí)行類(lèi)型檢查

常量:共享一塊內(nèi)存空間,就算項(xiàng)目中N處用到,也不會(huì)分配N(xiāo)塊內(nèi)存空間,可以根據(jù)const修飾的位置設(shè)定能否修改,在編譯階段會(huì)執(zhí)行類(lèi)型檢查

常量區(qū)分

全局常量:不管你定義在任何文件夾,外部都能訪(fǎng)問(wèn)

const NSString *HSCoder = @"漢斯哈哈哈";

比如:

局部常量:用static修飾后,不能提供外界訪(fǎng)問(wèn)

static const NSString *HSCoder = @"漢斯哈哈哈";

一般項(xiàng)目中,定義全局常量,會(huì)寫(xiě)在獨(dú)立文件里

如:

相關(guān)文章

  • iOS 修改alertViewController彈框的字體顏色及字體的方法

    iOS 修改alertViewController彈框的字體顏色及字體的方法

    下面小編就為大家分享一篇iOS 修改alertViewController彈框的字體顏色及字體的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • ios 服務(wù)器端推送證書(shū)生成的方法

    ios 服務(wù)器端推送證書(shū)生成的方法

    這篇文章主要介紹了ios 服務(wù)器端推送證書(shū)生成的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • iOS 斷點(diǎn)上傳文件的實(shí)現(xiàn)方法

    iOS 斷點(diǎn)上傳文件的實(shí)現(xiàn)方法

    這項(xiàng)目開(kāi)發(fā)中,有時(shí)候我們需要將本地的文件上傳到服務(wù)器,簡(jiǎn)單的幾張圖片還好,但是針對(duì)iPhone里面的視頻文件進(jìn)行上傳,為了用戶(hù)體驗(yàn),我們有必要實(shí)現(xiàn)斷點(diǎn)上傳。這篇文章主要介紹了iOS 斷點(diǎn)上傳文件的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-12-12
  • IOS 避免self循環(huán)引用的方法的實(shí)例詳解

    IOS 避免self循環(huán)引用的方法的實(shí)例詳解

    這篇文章主要介紹了IOS 避免self循環(huán)引用的方法的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • iOS中textField限制字符串長(zhǎng)度、字符數(shù)的方法

    iOS中textField限制字符串長(zhǎng)度、字符數(shù)的方法

    這篇文章主要給大家介紹了關(guān)于iOS中textField限制字符串長(zhǎng)度、字符數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • iOS開(kāi)發(fā)中仿Tumblr點(diǎn)贊心破碎動(dòng)畫(huà)效果

    iOS開(kāi)發(fā)中仿Tumblr點(diǎn)贊心破碎動(dòng)畫(huà)效果

    這篇文章主要介紹了iOS開(kāi)發(fā)中仿Tumblr點(diǎn)贊心破碎動(dòng)畫(huà)效果,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2017-04-04
  • iOS?Swift?Lazy?var?View失效問(wèn)題解決

    iOS?Swift?Lazy?var?View失效問(wèn)題解決

    這篇文章主要為大家介紹了iOS?Swift?Lazy?var?View失效問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 支持Xcode10和適配iPhone XS Max、iPhone XR的方法

    支持Xcode10和適配iPhone XS Max、iPhone XR的方法

    這篇文章主要介紹了支持Xcode10和適配iPhone XS Max、iPhone XR的方法,文中通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • iOS之異常與信號(hào)使用場(chǎng)景分析

    iOS之異常與信號(hào)使用場(chǎng)景分析

    這篇文章主要為大家介紹了iOS之異常與信號(hào)使用場(chǎng)景分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • iOS WebSocket長(zhǎng)鏈接的實(shí)現(xiàn)方法

    iOS WebSocket長(zhǎng)鏈接的實(shí)現(xiàn)方法

    WebSocket是HTML5一種新的協(xié)議,它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信,本篇文章介紹了iOS WebSocket長(zhǎng)鏈接的使用,有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11

最新評(píng)論