最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS關鍵字static extern const使用示例詳解

 更新時間:2023年11月09日 11:02:53   作者:FieryDragon  
這篇文章主要為大家介紹了iOS關鍵字static extern const使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

全局變量

在函數(shù)外聲明的變量,可以在聲明時附上初始值,存儲在全局區(qū),生命周期為整個程序運行期間。

#import "SEObject.h"
//定義在.h文件中時該類被其他文件引入時報重復定義的錯誤(1 duplicate symbol for architecture x86_64)
NSString * SEString = @"SEString";
@implementation SEObject
@end
#import "SEView.h"
//#import "SEObject.h"
//NSString * SEString;
@implementation SEView
@end

源程序中不能存在相同的對象名,否則編譯器報錯(1 duplicate symbol for architecture x86_64

extern

此時如果其它源文件想要訪問該全局變量,需要聲明extern。

  • 在使用的類中extern 全局變量,此時不要要引入全局變量所在類。
#import "SEView.h"
//#import "SEObject.h"
//NSString * SEString;
@implementation SEView
- (void)add {
    extern NSString * SEString;
    NSLog(@"%@",SEString);
    SEString = @"SEString2";
    NSLog(@"%@",SEString);
}
@end
  • 在全局變量所在類的.h文件中聲明該全局變量外部使用(推薦)。
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
extern NSString * SEString;
@interface SEObject : NSObject
@end
NS_ASSUME_NONNULL_END
#import "SEView.h"
#import "SEObject.h"
//NSString * SEString;
@implementation SEView
- (void)add {
    //extern NSString * SEString;
    NSLog(@"%@",SEString);
    SEString = @"SEString2";
    NSLog(@"%@",SEString);
}
@end
SEString
SEString2

static - 靜態(tài)全局變量

用static修飾的全局變量為靜態(tài)全局變量,存儲在全局區(qū),生命周期為整個程序運行期間。

#import "SEObject.h"
//定義在.h文件中時該類被其他文件引入時報重復定義的錯誤(1 duplicate symbol for architecture x86_64)
static NSString * SEString = @"SEString";
@implementation SEObject
+ (void)add {
    NSLog(@"%@",SEString);
    SEString = @"SEString2";
    NSLog(@"%@",SEString);
}
SEString
SEString2
@end

static不能與extern組合使用,否則報錯:Cannot combine with previous 'extern' declaration specifier

聲明在.h文件時,引入該類,依然可以使用并修改此靜態(tài)全局變量;

聲明在.m文件時,兩個類文件可是使用相同變量名,彼此相互獨立。

全局變量和靜態(tài)變量區(qū)別(摘抄)

兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當一個源程序由多個源文件組成時,非靜態(tài)的全局變量在各個源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯誤。

const

const修飾的變量是不可變的。

正確用法:

static NSString * const SEString = @"SEString";

以下兩種寫法const修飾的是* SEString,*是指針指向符,也就是說此時指向內(nèi)存地址是不可變的,而內(nèi)存保存的內(nèi)容時可變的。

static NSString const * SEString = @"SEString";
static const NSString * SEString = @"SEString";

局部變量

函數(shù)內(nèi)部聲明的變量,僅在當前函數(shù)執(zhí)行期間存在。

@implementation SEObject

- (void)add {
    NSInteger a = 1;
    NSInteger b = 2;
    NSInteger c = a+b;
    NSLog(@"c = %ld",c);
}

@end

static - 靜態(tài)局部變量

用static修飾的局部變量為靜態(tài)局部變量,存儲在全局區(qū),生命周期為整個程序運行期間。

- (void)add {
    NSInteger a = 1;
    NSInteger b = 2;
    static NSInteger c2;
    c2 += a+b;
    NSLog(@"c2 = %ld",c2);
}
調(diào)用兩次結果:
c2 = 3
c2 = 6

以上就是iOS關鍵字static extern const使用示例詳解的詳細內(nèi)容,更多關于iOS關鍵字static extern const的資料請關注腳本之家其它相關文章!

相關文章

  • IOS-MVC層讀取服務器接口JSON數(shù)據(jù)

    IOS-MVC層讀取服務器接口JSON數(shù)據(jù)

    這篇文章主要為大家詳細介紹了IOS-MVC層讀取服務器接口JSON數(shù)據(jù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • iOS中的UIKeyboard鍵盤視圖使用方法小結

    iOS中的UIKeyboard鍵盤視圖使用方法小結

    鍵盤視圖我們平時在做App的時候都要調(diào)用得到,這里我們就來整理一下iOS中的UIKeyboard鍵盤視圖使用方法小結,需要的朋友可以參考下
    2016-06-06
  • iOS百度地圖簡單使用詳解

    iOS百度地圖簡單使用詳解

    百度地圖的功能有很多,本篇文章主要介紹了iOS百度地圖簡單使用詳解,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • iOS 撥打電話代碼的三種方式

    iOS 撥打電話代碼的三種方式

    本文給大家分享三種方式實現(xiàn)ios撥打電話的代碼,非常不錯,具有一定的參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • iOS使用WKWebView加載HTML5不顯示屏幕寬度的問題解決

    iOS使用WKWebView加載HTML5不顯示屏幕寬度的問題解決

    這篇文章主要介紹了iOS使用WKWebView加載HTML5不顯示屏幕寬度的問題解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • iOS實現(xiàn)去除html標簽的方法匯總

    iOS實現(xiàn)去除html標簽的方法匯總

    相信大家在做網(wǎng)站的時候,經(jīng)常會遇到去除html標簽的問題,下面這篇文章主要給大家總結介紹了關于iOS如何實現(xiàn)去除html標簽的一些方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • iOS開發(fā)驗證判斷語句之正則表達式小結

    iOS開發(fā)驗證判斷語句之正則表達式小結

    最近在公司接手重構一個項目,發(fā)現(xiàn)之前的開發(fā)在驗證格式這塊寫的太亂了,到處都有相關的驗證代碼,所以就有了這篇文章,供自己收藏也分享給有需要的朋友們參考借鑒,下面跟著小編來一起學習學習吧。
    2016-12-12
  • iOS 按鈕上的文字添加下劃線的方法

    iOS 按鈕上的文字添加下劃線的方法

    這篇文章主要介紹了iOS 按鈕上的文字添加下劃線的方法的相關資料,需要的朋友可以參考下
    2016-05-05
  • iOS中CPU線程調(diào)試的高級技巧分享

    iOS中CPU線程調(diào)試的高級技巧分享

    這篇文章主要給大家介紹了關于iOS中CPU線程調(diào)試的高級技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • 詳解iOS App中UiTabBarController組件的基本用法

    詳解iOS App中UiTabBarController組件的基本用法

    UiTabBarController組件即是用來創(chuàng)建App中的Tab視圖切換選項欄,下面將詳解iOS App中UiTabBarController組件的基本用法,包括左右滑動切換標簽頁等基本功能的實現(xiàn),需要的朋友可以參考下
    2016-05-05

最新評論

全南县| 屏山县| 张家界市| 钟山县| 阿克陶县| 垣曲县| 循化| 延津县| 微山县| 漳州市| 延寿县| 宣化县| 丽江市| 西华县| 龙海市| 合作市| 寿阳县| 玉溪市| 金华市| 基隆市| 新田县| 清水河县| 渭源县| 滕州市| 瓦房店市| 洛隆县| 公安县| 三都| 宁陵县| 宿迁市| 始兴县| 清水县| 磐安县| 泸溪县| 大理市| 娄烦县| 嘉善县| 囊谦县| 安徽省| 湖北省| 长泰县|