從一些視頻以及網(wǎng)站上整理的資料
1.const和宏的區(qū)別
宏是預(yù)編譯,const是編譯階段
宏不做檢查,不報(bào)錯(cuò),只是替換,const會(huì)編譯檢查,會(huì)報(bào)編譯錯(cuò)誤
宏能定義一些函數(shù),方法,const不能
宏容易編譯時(shí)間久,每次都需要重新替換,宏定義的常量,常量都放在常量區(qū),只會(huì)生成一份內(nèi)存
2.const
const僅僅用來(lái)修飾右邊的變量(基本數(shù)據(jù)變量p ,指針變量*p)
-
被const修飾的變量是只讀的
1.修飾基本變量,下面兩種寫法是一樣的: const int a=20; int const a =20; 2.修飾指針變量 const int *p //指的的是*p只讀 int * const p //指的是p 只讀 根據(jù)const范圍來(lái)判斷只讀的范圍 如: int const *const p //p為常量, *p為常量
-
const開發(fā)中使用場(chǎng)景
1.設(shè)置方法中的參數(shù)為只讀
2.定義只讀全局變量
2.static
作用:
1.修飾局部變量:
延長(zhǎng)變量的生命周期掠械,程序結(jié)束才會(huì)銷毀
在同一作用域文件中莹捡,只被初始化一次
2.修飾全局變量
只要在同一個(gè)文件中锉屈,變量的生命周期不會(huì)改變
避免重復(fù)定義的全局變量
3.extern
extern的作用:聲明一個(gè)全局變量,不能定義變量
extern的原理:現(xiàn)在當(dāng)前文件中查找全局變量限番,如果沒(méi)有,再去其他文件中查找
4.聯(lián)合使用
static與const組合:在每個(gè)文件都需要定義一份靜態(tài)全局變量。
extern與const組合:只需要定義一份全局變量饭聚,多個(gè)文件共享嫌吠。