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修飾的全局靜態變量,作用域是聲明此變量所在的文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM