文章內(nèi)容為自己學(xué)習(xí)所得,寫在簡書上只為增加記憶,希望各位大神賜教,也不希望誤人子弟,不喜勿噴!!!!謝謝
static
1>被static修飾的變量的生命周期會(huì)被延長,和應(yīng)用程序的生命周期一樣
2>被static修飾的變量只分配一次內(nèi)存
3>程序開始運(yùn)行時(shí)就會(huì)給static修飾的變量分配內(nèi)存
4>被static修飾的局部變量作用域只在當(dāng)前函數(shù)或方法中使用
5>被static修飾的全局變量作用域只在當(dāng)前文件中起作用
extern
1>聲明外部的全局變量(注意:extern只能用來聲明,不能用來定義)
2>工作原理:先在當(dāng)前文件下查找有沒有對應(yīng)的全局變量,如果沒有就去其它文件中查找(static修飾的全局變量不能使用extern)
define
1>宏定義是在預(yù)編譯里進(jìn)行文本替換
2>沒有類型區(qū)分,不會(huì)進(jìn)行代碼檢查
3>大量使用宏定義會(huì)使編譯的二進(jìn)制文件增大,宏定義占用的只是代碼段而已,只會(huì)分配一塊內(nèi)存空間
const
作用:1>使用const修飾的基本變量和指針變量
2>使用const修飾的變量不可以被改變,修飾完以后就會(huì)變成只讀屬性
3>const右邊的變量不能被修改
四種寫法:
1妻怎、static const NSString *Coder = @"xxx";
2、const NSString *Coder = @"xxx";
3昆庇、NSString const *Coder = @"xxx";
4局服、NSString * const Coder = @"xxx"榄审。
全局常量:不管你定義在任何文件夾,外部都能訪問(如:const NSString *Coder = @"x xx";)
局部常量:用static修飾后,不能提供外界訪問(如:static const NSString *Coder = @"漢xxx";)
const右邊的總不能被修改:
1.const NSString *Coder = @"xxx";
"*Coder"不能被修改赴穗, "Coder"能被修改
2.NSString const *Coder = @"xxx";
"*Coder"不能被修改椎侠, "Coder"能被修改
3.NSString * const Coder = @"xxx";
"Coder"不能被修改第租,"*Coder"能被修改