91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-17 08:57:02 來源:腳本之家 閱讀:192 作者:laozhang 欄目:移動開發

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

當我們想全局共用一些數據時,可以用宏、變量、常量

宏:

#define HSCoder @"漢斯哈哈哈"

變量:

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

常量:

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

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

NSString const * 和 NSString * const 不同在于前者相當于指針指向的內容不可修改,后者表示指針本身不可修改

有時候會遇到:

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

const NSString *就會遇到警報:

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

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

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

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

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

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

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

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

常量區分

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

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

比如:

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

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

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

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

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

如:

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南平市| 兴海县| 汪清县| 黑水县| 富宁县| 新泰市| 文安县| 中江县| 海林市| 古蔺县| 瓦房店市| 马尔康县| 天镇县| 道孚县| 开阳县| 克东县| 浦城县| 古丈县| 文山县| 金昌市| 长兴县| 临江市| 临邑县| 新建县| 汝阳县| 姜堰市| 宁化县| 静乐县| 叶城县| 大理市| 高密市| 乐清市| 两当县| 福安市| 积石山| 大洼县| 鸡泽县| 电白县| 行唐县| 洛阳市| 武功县|