最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

宏:

#define HSCoder @"漢斯哈哈哈"

變量:

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

常量:

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

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

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

有時候會遇到:

const NSString *就會遇到警報:

改成NSString * const就不會了。說明兩者是不同的。

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

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

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

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

常量區(qū)分

全局常量:不管你定義在任何文件夾,外部都能訪問

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

比如:

局部常量:用static修飾后,不能提供外界訪問

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

一般項目中,定義全局常量,會寫在獨立文件里

如:

相關(guān)文章

最新評論

休宁县| 綦江县| 威海市| 芜湖市| 古浪县| 五常市| 朝阳市| 丹东市| 浦江县| 临沂市| 廊坊市| 永平县| 余庆县| 北碚区| 台州市| 阜平县| 合阳县| 库尔勒市| 桐庐县| 正阳县| 淮滨县| 平度市| 江川县| 永兴县| 抚松县| 天等县| 东台市| 神木县| 辽源市| 莱州市| 金阳县| 五常市| 蚌埠市| 湖口县| 宁陵县| 青浦区| 苍山县| 确山县| 夏邑县| 长汀县| 大渡口区|