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

首頁 > 系統(tǒng) > iOS > 正文

iOS中的const,static,extern

2019-11-09 14:54:38
字體:
供稿:網(wǎng)友

               iOS中的const,static,extern

1.對于const,沒啥說的,如下,修飾了,就算只讀了

int const xyz=123;

2.對于static(靜態(tài))

用幾個(gè)例子來說:

第一個(gè)例子

#import "StaticLearn.h"@implementation StaticLearnstatic int lizi = 1;+(int)learn{    return lizi++;}-(int)learn1{    return lizi++;}@end類StaticLearn里面有一個(gè)static變量lizi,初始化值為1,類有一個(gè)類方法和一個(gè)對象方法,我們使用一下看看

    NSLog(@"%d",[StaticLearn learn]);    NSLog(@"%d",[StaticLearn learn]);    NSLog(@"%d",[StaticLearn learn]);輸出結(jié)果為:

2017-02-09 13:41:46.317 UIKitLearn[2919:115349] 12017-02-09 13:41:46.318 UIKitLearn[2919:115349] 22017-02-09 13:41:46.318 UIKitLearn[2919:115349] 3static修飾延長了lizi的生命周期(記得以前看書,好像static修飾會改變變量存儲模式,好像會從棧移到堆,這個(gè)考究一下再回來確定)

第二個(gè)例子

我們用對象方法嘗試:

    StaticLearn *sl = [[StaticLearn alloc]init];    NSLog(@"%d",[sl learn1]);    NSLog(@"%d",[sl learn1]);    NSLog(@"%d",[sl learn1]);    sl = nil;    sl = [[StaticLearn alloc]init];    NSLog(@"%d",[sl learn1]);    NSLog(@"%d",[sl learn1]);    NSLog(@"%d",[sl learn1]);我們生成對象,輸出結(jié)果為:

2017-02-09 13:49:10.108 UIKitLearn[3099:121367] 12017-02-09 13:49:10.108 UIKitLearn[3099:121367] 22017-02-09 13:49:10.109 UIKitLearn[3099:121367] 32017-02-09 13:49:10.109 UIKitLearn[3099:121367] 42017-02-09 13:49:10.109 UIKitLearn[3099:121367] 52017-02-09 13:49:10.109 UIKitLearn[3099:121367] 6寫了這個(gè)例子讓我對static修飾的變量存儲位置產(chǎn)生疑問,懂的同學(xué)評論給我

第三個(gè)例子

-(int)learn2{    static int i = 1;    return i;}-(int)learn3{    return i;}這樣的寫法是錯(cuò)誤的,也就是static不能改變i的作用域

3.對于extern

按字面理解,外部外來的,那么extern修飾的變量應(yīng)該是來自外部的,即是其他文件里聲明的變量

這里說下我的使用,具體為什么這樣寫。。。我現(xiàn)在還沒摸清

有兩個(gè)類A和B

第一種

在A.m文件里聲明

NSString *haha = @"hello";

在B.h或者B.m文件中

extern NSString *haha;在B.m文件中 

NSLog(@"%@",haha);這樣輸出的即為‘hello’,在B中改變haha的值,A中的值也會同樣變化

但我不太明白,為什么在A.h文件中不能聲明,會出現(xiàn)linker錯(cuò)誤


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岑巩县| 望谟县| 阆中市| 宁陵县| 西峡县| 彭阳县| 屏南县| 上饶县| 宣化县| 铜陵市| 扶沟县| 信宜市| 潮安县| 沈丘县| 新巴尔虎右旗| 兴隆县| 神池县| 昭苏县| 象州县| 海安县| 喀喇| 江津市| 东丰县| 咸阳市| 慈溪市| 德保县| 新晃| 庆安县| 常德市| 定兴县| 扬州市| 扎鲁特旗| 大悟县| 蕉岭县| 韶山市| 九江县| 阳曲县| 红原县| 廉江市| 保定市| 湖州市|