国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

static extern const 靜態全局變量與全局變量的區別

2019-11-09 17:22:38
字體:
來源:轉載
供稿:網友

static:和extern是用來設置作用域的 const:設置變量只可以被讀,不可以被修改

static:

用static修飾的變量,在其所限定的作用域中只會有一分內存

1:在一個函數內部:說明是一個靜態局部變量,

不管這個函數被調用多少次,這個static修飾的變量只會有一分內存,也就是說當這個變量多次被修改,都是在上一次基礎上修改,不會從頭再來

2:在一個文件內部,函數外部:靜態全局變量

該文件中的函數都可以訪問到,并且不同函數在對該變量修改時都是在上一個函數修改的基礎上修改的

靜態全局變量和非靜態全局變量的區別

static 限制了變量的作用域只在該文件里,所以加上static在別的文件中國定義一個相同的static沒有問題 沒有static修飾的全局變量,要是在不同文件中定義了相同的變量名,程序會報錯

extern:外部變量

用extern修飾的變量,可以被其他類所訪問,凡是引用了extern所修飾的變量的頭文件,那么就可以使用該變量。

但是要注意因為static修飾的不在全局符號表中,所以不用區分變量名extern修士的在全局符號表里面,所以要區分。

const:一個變量用const修飾,說明該變量不可以被修改

混搭

1:static和const

static NSString *const indentifier = @"hello";

相當于一個文件中的宏定義

2:extern和const

在.h文件中

extern NSString *const hello;

在.m文件中賦值

NSString *const hello = @"world";

可以用于發送通知,這樣就不用知道name,只需要使用這個變量就可以了

補充

在iOS開發中的一種編程技巧:多用類型常量,少用#define預處理命令

static限制了變量的作用域,但是#define沒有,如果我們僅僅想在一個文件內部使用一個常量,而不影響其他的文件的宏,如果用define,那么所有導入了該文件的那些文件中要是有一個相同的變量,那么這些變量都會被替換 static 形式的常量定義,可以知道其類型,代碼可讀性好 const的修飾使得該變量在修改會保存,確保其不會被修改,但是#define卻不會,值可能會被修改


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄樊市| 崇礼县| 白朗县| 车险| 南汇区| 高州市| 章丘市| 九寨沟县| 南通市| 那曲县| 长春市| 嵊州市| 芮城县| 新疆| 方城县| 祁东县| 开化县| 古蔺县| 阳山县| 开封县| 临夏市| 兴国县| 蒲江县| 阳原县| 库伦旗| 南丹县| 吴堡县| 饶阳县| 东海县| 交城县| 安阳县| 安国市| 双江| 青铜峡市| 黎平县| 新巴尔虎左旗| 泾阳县| 临汾市| 南和县| 清水县| 开原市|