2019-03-21

读第三方开源框架SDWebImage随笔

1,extern 作用:可以访问外部文件的变量。

定义一个GFA.h 和 GFA.m

在GFA.m的@implement 下面定义一个int a =20;

我们可以在viewcontroller中不用导入GFA的头文件下访问 a变量

eg:extern int a; 这个时候并不是定义变量a 而是拿到变量 a 也可以修改 a = 10;

2,const 修饰距离const右边最近的变量 英文单词翻译过来就是常量的意思 可以修饰右边的基本变量和指针变量

被const修饰过的变量只能读,不能修改

int  const  *p   //  *p只读 ;p变量

int  * const  p  // *p变量 ; p只读

const  int   * const p //p和*p都只读

int  const  * const  p   //p和*p都只读

注: 判断p 和p是只读还是变量,关键是看const在谁前面。如果只在p前面,那么p只读,p还是变量;如果在p前面,那么p只读 ,p变量。

//定义一个全局只读变量

NSString  * const kuserName = @"appkey";

//static修饰后此全局变量只能本文件访问

static NSString *const Key = @"hello”;

3,static   a: 修饰局部变量 保证局部变量永远只初始化一次,在程序的运行过程中永远只有一份内存,  生命周期类似全局变量了 作用域还是在函数范围内

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{    //声明一个局部变量x

    int x = 0;    //每次点击view来到这个方法时让i自增

    x ++;    //打印结果

    NSLog(@"i=%d",x);

}

b:修饰全局变量

使全局变量的作用域仅限于当前文件内部,即当前文件内部才能访问该全局变量。

iOS中在一个文件声明的全局变量,工程的其他文件也是能访问的,但是我又不想让其他文件访问,这时就可以用static修饰它了,比较典型的是使用GCD一次性函数创建的单例,全局变量基本上都会用static修饰。

下面是一个GCD一次函数创建的单利

@implementation LoginTool

//static修饰全局变量,让外界文件无法访问

static LoginTool *_sharedManager = nil;

+ (LoginTool *)sharedManager {   

   static dispatch_once_t oncePredicate;   

   dispatch_once(&oncePredicate, ^{

        _sharedManager = [[self alloc] init];

    });   

   return _sharedManager;

}


inline

在iOS中的一些框架中,static inline是经常出现的关键字组合.

static自不用多说,表示在当前文件中应用,如 static A, 在其它文件中也可以出现static A.不会导致重名的错误.

inline. 内联函数.

作用:替代宏.

当然inline函数与宏有区别,inline可以:

解决函数调用效率的问题:

函数之间调用,是内存地址之间的调用,当函数调用完毕之后还会返回原来函数执行的地址。函数调用有时间开销,内联函数就是为了解决这一问题。

不用inline修饰的函数, 汇编时会出现 call 指令.调用call指令就是就需要:

(1)将下一条指令的所在地址入栈

(2)并将子程序的起始地址送入PC(于是CPU的下一条指令就会转去执行子程序).

为什么inline能取代宏?

优点相比于函数:

inline函数避免了普通函数的,在汇编时必须调用call的缺点:取消了函数的参数压栈,减少了调用的开销,提高效率.所以执行速度确比一般函数的执行速度要快.

2)集成了宏的优点,使用时直接用代码替换(像宏一样);

优点相比于宏:

1)避免了宏的缺点:需要预编译.因为inline内联函数也是函数,不需要预编译.

2)编译器在调用一个内联函数时,会首先检查它的参数的类型,保证调用正确。然后进行一系列的相关检查,就像对待任何一个真正的函数一样。这样就消除了它的隐患和局限性。

3)可以使用所在类的保护成员及私有成员。

inline内联函数的说明

1.内联函数只是我们向编译器提供的申请,编译器不一定采取inline形式调用函数.

2.内联函数不能承载大量的代码.如果内联函数的函数体过大,编译器会自动放弃内联.

3.内联函数内不允许使用循环语句或开关语句.

4.内联函数的定义须在调用之前.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,093评论 1 32
  • 说明: ​ 不是很清楚的点 ,用下划线。 ​ 解答,用斜体; ​ 重点,用粗体加粗; 第四章 Fun...
    CodeYuan阅读 546评论 0 2
  • 几种语言的特性 汇编程序:将汇编语言源程序翻译成目标程序编译程序:将高级语言源程序翻译成目标程序解释程序:将高级语...
    囊萤映雪的萤阅读 2,871评论 1 5
  • 1、设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类...
    方白羽lw阅读 807评论 0 0
  • 在这个纷扰的世界, 有一个知心的朋友是一件欣然的事情约朋友到咖啡店喝几杯咖啡说一说彼此之间的最近的趣事 。 ...
    茉合阅读 517评论 3 1