国产探花免费观看_亚洲丰满少妇自慰呻吟_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錯誤


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九龙县| 长宁区| 芦山县| 启东市| 依安县| 静乐县| 济阳县| 东港市| 谷城县| 象山县| 平原县| 兰考县| 安吉县| 元氏县| 临漳县| 龙州县| 漳州市| 长治市| 靖安县| 莆田市| 威海市| 宝坻区| 迁西县| 洪泽县| 高唐县| 长葛市| 嘉义市| 成都市| 佛坪县| 甘肃省| 武山县| 元朗区| 闻喜县| 襄垣县| 同仁县| 越西县| 长阳| 扬中市| 信宜市| 武功县| 德令哈市|