• iOS中的extern与static


    1.extern

    #import <Foundation/Foundation.h>
    
    extern NSString *DBDefaultName;
    
    @interface DataBase : NSObject
    
    @end
    
    
    
    #import "DataBase.h"
    
    NSString *DBDefaultName = @"default.sqlite";
    
    @implementation DataBase
    
    @end
    extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或者函数时时,在其他模块中寻找其定义。另外,extern也可用来进行链接指定

    2.static 

    #import "DataBase.h"
    #import "FMDatabase.h"
    
    @interface DataBase ()
    
    @end
    
    @implementation DataBase
    
    static FMDatabase *database;
    
    @end

    3.区别:

      (1)extern修饰的全局变量默认是有外部链接的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过external全局变量的声明,就可以使用全局变量。

      (2)static修饰的全局静态变量,作用域是声明此变量所在的文件。

  • 相关阅读:
    Linux常用命令大全
    YUM仓库服务
    Keepalived 双机热备
    VML
    CSS3选择器一
    lambda表达式详解
    将博客搬至CSDN
    html5本地数据库(一)
    疯狂的表单-html5新增表单元素和属性
    值类型与引用类型总结
  • 原文地址:https://www.cnblogs.com/chanjinger/p/6006997.html
Copyright © 2020-2023  润新知