宏與const區(qū)別

const:c語音關(guān)鍵字 是一個修飾符? 被const修飾后就意味著"只讀"不能被修改 .當用字符串常量時,蘋果官方推薦使用const.

const int a;

int const a;

const int *a;

int * const a;

int const * a const;

const定義的右邊的是不可以改變的,也就是說const修飾的是它右邊的部分。

前兩個的作用是一樣,a是一個常整型數(shù)。

第三個意味著a是一個指向常整型數(shù)的指針(也就是,指向的整型數(shù)是不可修改的,但指針可以,此最常見于函數(shù)的參數(shù),當你只引用傳進來指針所指向的值時應該加上const修飾符,程序中修改編譯就不通過,可以減少程序的bug)。

第四個意思a是一個指向整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是可以修改的,但指針是不可修改的)。

最后一個意味著a是一個指向常整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是不可修改的,同時指針也是不可修改的)。


一:宏的常見用法:

1:常用的字符串常量抽成宏

2:常用的代碼塊抽成宏

const的用法:

當用字符串常量的時候,蘋果官方推薦使用const

區(qū)別:

1:編譯時刻:宏:預編譯(xcode剛到有#就會預編譯);const:編譯時刻

2:編譯檢查:宏:編譯時不會檢查;const:編譯是會檢查

3:宏的好處:可以定義代碼

4:宏的壞處:編譯時間過長,因此建議常用的字符串常量用const修飾

二:static的作用:

1:修飾 局部變量:

延長這個局部變量的生命周期,只要程序運行,局部變量就會一直存在

局部變量只會分配一次內(nèi)存,因為用static修飾的代碼只會在程序一啟動就會執(zhí)行,以后就不會執(zhí)行


2:修飾全局變量:

只會修飾全局變量的 作用域,表示只會在是當前文件內(nèi)使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容