您好,登錄后才能下訂單哦!
一,全局變量
1,在m文件中的所有方法,類定義和函數(shù)定義之外
例:Square.m中定義一個(gè)全局變量 , 在main.m中引用
Square.m代碼如下:
// // Square.m // Square // // Created by Apple on 2017/9/9. // Copyright 2017年 Apple. All rights reserved. // #import "Square.h" int global_val = 20;//定義一個(gè)全局變量 @implementation Square : Rectangle -(void) setSide:(int)s { [ self setWidth:s addHeight:s]; } -(int) side { return self.width; } @end
使用外部的全局變量要使用extend關(guān)鍵字
main.m代碼如下:
// // main.m // Square // // Created by Apple on 2017/9/9. // Copyright 2017年 Apple. All rights reserved. // #import <Foundation/Foundation.h> #import "Square.h" int main(int argc, const char * argv[]) { @autoreleasepool { extern int global_val;// int s = global_val; NSLog(@"我得到的全局變量為 : %i" , s); return 0;} }
結(jié)果如下:
既然是全局變量,那么任何地方的修改都會(huì)在全局產(chǎn)生作用
進(jìn)一步測試
Square.m代碼:
// // Square.m // Square // // Created by Apple on 2017/9/9. // Copyright 2017年 Apple. All rights reserved. // #import "Square.h" int global_val = 20;//定義一個(gè)全局變量 @implementation Square : Rectangle -(void) setSide:(int)s { [ self setWidth:s addHeight:s]; } -(int) side { return self.width; } -(void) change { global_val = 30;//此處改變?nèi)肿兞康闹?} -(int) get_global { return global_val; } @end
main.m
// // main.m // Square // // Created by Apple on 2017/9/9. // Copyright 2017年 Apple. All rights reserved. // #import <Foundation/Foundation.h> #import "Square.h" int main(int argc, const char * argv[]) { @autoreleasepool { extern int global_val;// int s = global_val; NSLog(@"我得到的全局變量為 : %i" , s); Square *mySquare = [[Square alloc] init]; [mySquare change]; NSLog(@"Square change 后 s : %i ;;;;; 的全局變量 : %i" , s , global_val); global_val = 100; NSLog(@"s = %i , Square 中的全局變量 : %i " , s , [mySquare get_global]); return 0;} }
結(jié)果:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。