美文网首页
三、static和extern的作用

三、static和extern的作用

作者: faterman | 来源:发表于2018-01-25 14:49 被阅读4次

staic 用于局部变量主要是想要变量在局部可以保存修改。

static在用于全局变量时主要用来将变量限制在当前编译单元不向全局符号表注册。

#import "FTMNetworkFetcher.h"

static const NSTimeInterval kRequestMaxTime = 5.0; // 最长等待时间5s

@interface FTMNetworkFetcher () {
    struct {
        unsigned int didReceiceData     :1;
        unsigned int didFailWithError   :1;
    } _delegateFlags;
}
@end

@implementation FTMNetworkFetcher

- (void)setDelegate:(id<FTMNetworkFetcherDelegate>)delegate {
    _delegate = delegate;
    _delegateFlags.didReceiceData = [_delegate respondsToSelector:@selector(networkFetcher:didReceiveData:)];
    _delegateFlags.didFailWithError = [_delegate respondsToSelector:@selector(networkFetcher:didFailWithError:)];
}

@end

如果上面的例子中没有static:

const NSTimeInterval kRequestMaxTime = 5.0; // 最长等待时间5s

那么当另外的文件中也有一个不是static的kRequestMaxTime,命名空间就冲突了,一个空间里有两个相同名字的东西,因为放到全局来看,全局变量和类名就一样了,我们总是不会起两个一样的类名的。

还有一种情况,我确实想要注册到全局符号表,但是不向让用户看到,比如一些通知的定义。

---------------- interface ----------------
extern NSString *const FTMNetworkStatusChanged;

---------------- implementation ----------------
NSString *const FTMNetworkStatusChanged = @"FTMNetworkStatusChanged";

相关文章

  • 三、static和extern的作用

    staic 用于局部变量主要是想要变量在局部可以保存修改。 static在用于全局变量时主要用来将变量限制在当前编...

  • const、static、extern、宏

    const static extern 宏 const与宏的区别 static和const的联合使用 extern...

  • C语言复习之extern和static

    static和extern关键字对变量的作用 extern1.在main函数前面对变量a进行提前声明。也就是让ma...

  • 面试整理

    static和extern简单使用(用法) static作用:修饰局部变量:延长局部变量的生命周期,程序结束才会销...

  • const,static,extern作用

    一、const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏...

  • static的作用

    导航栏细节 防止系统自动调整scrollowView的contentInset extern 的作用 static...

  • extern和static对变量的作用

    1.extern可以用来声明一个全局变量,但是不能用来定义变量,声明可以进行多次,但不能重复定义变量(不使用的时候...

  • extern和static对函数的作用

    函数也分为内部函数和外部函数 默认情况下所有的函数都是外部函数什么是外部函数? 可以被其它文件访问的函数称之为外部...

  • iOS中数据传值的几种方式

    值传递:基本数据类型的变量之间的数据传递 全局变量static和extern 1)static修饰的全局变量作用范...

  • static 和 extern 关键字

    static 和 extern 是c语言中的两个关键字,是用来修饰变量和函数. 1.static和extern修饰...

网友评论

      本文标题:三、static和extern的作用

      本文链接:https://www.haomeiwen.com/subject/vdtvaxtx.html