国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 佛山市| 崇明县| 麦盖提县| 威海市| 日土县| 望谟县| 齐齐哈尔市| 怀仁县| 兴城市| 阿巴嘎旗| 镇平县| 吴旗县| 和平县| 丰镇市| 沙田区| 湖州市| 稻城县| 邵武市| 华蓥市| 读书| 木兰县| 廉江市| 大悟县| 普安县| 宁南县| 濮阳市| 连城县| 汽车| 金华市| 南投县| 通许县| 舞钢市| 肃北| 社旗县| 留坝县| 英超| 修文县| 广宁县| 乌拉特中旗| 象山县| 苗栗县|