static、const、extern的用法和區(qū)別

在開(kāi)發(fā)中我們經(jīng)常會(huì)使用到static、const、extern等關(guān)鍵字,在此總結(jié)幾個(gè)關(guān)鍵字的作用和區(qū)別。

一、const和宏的區(qū)別- 編譯時(shí)刻:宏是預(yù)編譯(編譯之前處理),const是編譯階段。- 編譯檢查:宏不做編譯檢查,不會(huì)報(bào)編譯錯(cuò)誤,只是替換。const會(huì)編譯檢查會(huì)報(bào)編譯錯(cuò)誤。- 宏的好處:宏能定義一些函數(shù)和方法而const不能。- 宏的壞處:大量使用宏,容易造成編譯時(shí)間過(guò)長(zhǎng),每次都需要重新替換。

#####二、const的作用- const僅僅用來(lái)修飾右邊的變量(基本數(shù)據(jù)變量p,指針變量p)- 被const修飾的變量是只讀的。#####三、const開(kāi)發(fā)中使用場(chǎng)景:- 提供一個(gè)方法,這個(gè)方法的參數(shù)是地址,里面只能通過(guò)地址讀取值,不能通過(guò)地址修改值- 提供一個(gè)方法,這個(gè)方法的參數(shù)是地址,里面不能修改參數(shù)的地址。#####四、static和extern簡(jiǎn)單使用- static的作用 - 修飾局部變量 - 延長(zhǎng)局部變量的生命周期,程序結(jié)束才會(huì)銷毀。 - 局部變量只會(huì)生成一份內(nèi)存,只會(huì)初始化一次。 - 改變局部變量的作用域。 - 修飾全局變量 - 只能在本文件中訪問(wèn),修改全局變量的作用域,生命周期不會(huì)改 - 避免重復(fù)定義全局變量- extern作用: - 只是用來(lái)獲取全局變量(包括全局靜態(tài)變量)的值,不能用于定義變量- extern工作原理: - 先在當(dāng)前文件查找有沒(méi)有全局變量,沒(méi)有找到,才會(huì)去其他文件查找。*#####五、static與const聯(lián)合使用- static與const作用: - 聲明一個(gè)只讀的靜態(tài)變量- 開(kāi)發(fā)使用場(chǎng)景: - 在一個(gè)文件中經(jīng)常使用的字符串常量,可以使用static與const組合#####六、extern與const聯(lián)合使用 - 開(kāi)發(fā)中使用場(chǎng)景: - 在多個(gè)文件中經(jīng)常使用的同一個(gè)字符串常量,可以使用extern與const組合。- 原因: - static與const組合:在每個(gè)文件都需要定義一份靜態(tài)全局變量。 - extern與const組合:只需要定義一份全局變量,多個(gè)文件共享。- 全局常量正規(guī)寫(xiě)法: - 開(kāi)發(fā)中便于管理所有的全局變量,通常搞一個(gè)GlobeConst文件,里面專門(mén)定義全局變量,統(tǒng)一管理,要不然項(xiàng)目文件多不好找。由于本文本原意是總結(jié)視頻內(nèi)容,但后來(lái)發(fā)現(xiàn)作者原文在此寫(xiě)下地址【如何正確使用const,static,extern】|那些人追的干貨

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

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

  • ### const,static,extern簡(jiǎn)介 ### 一、const與宏的區(qū)別(面試題): * `const...
    老騷鵝閱讀 717評(píng)論 0 7
  • static 修飾局部變量 讓局部變量只初始化一次 局部變量在程序中只有一份內(nèi)存 并不會(huì)改變局部變量的作用域,僅僅...
    大沖哥閱讀 1,493評(píng)論 0 1
  • 一. const 與 宏的區(qū)別 編譯時(shí)刻: 宏是預(yù)編譯(編譯之前處理), const是編譯階段處理 編譯檢查: 宏...
    LZM輪回閱讀 666評(píng)論 0 2
  • const,static,extern簡(jiǎn)介一、const與宏的區(qū)別(面試題):const簡(jiǎn)介:之前常用的字符串常量...
    BinaryRo閱讀 284評(píng)論 0 1
  • 一、const與宏的區(qū)別: const簡(jiǎn)介:之前常用的字符串常量,一般是抽成宏,但是蘋(píng)果不推薦我們抽成宏,推薦我們...
    金約21依代閱讀 252評(píng)論 0 1

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