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

首頁 > 系統 > iOS > 正文

iOS中的const,static,extern

2019-11-09 16:06:54
字體:
來源:轉載
供稿:網友

               iOS中的const,static,extern

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

int const xyz=123;

2.對于static(靜態)

用幾個例子來說:

第一個例子

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

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

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修飾會改變變量存儲模式,好像會從棧移到堆,這個考究一下再回來確定)

第二個例子

我們用對象方法嘗試:

    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]);我們生成對象,輸出結果為:

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寫了這個例子讓我對static修飾的變量存儲位置產生疑問,懂的同學評論給我

第三個例子

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

3.對于extern

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

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

有兩個類A和B

第一種

在A.m文件里聲明

NSString *haha = @"hello";

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

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

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

但我不太明白,為什么在A.h文件中不能聲明,會出現linker錯誤


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴山县| 东山县| 华阴市| 图木舒克市| 大安市| 阿拉尔市| 凌云县| 本溪市| 滦平县| 保德县| 台州市| 华安县| 松桃| 墨脱县| 海口市| 元江| 东乌珠穆沁旗| 象州县| 宜君县| 唐山市| 尖扎县| 长海县| 福州市| 景谷| 泾阳县| 岳普湖县| 南华县| 江山市| 滦南县| 万源市| 大悟县| 宁城县| 武汉市| 中超| 丰顺县| 呼图壁县| 五大连池市| 华宁县| 乐东| 宁强县| 怀集县|