static和extern的使用

static

static的作用

  • 修飾局部變量:
    1.延長局部變量的生命周期,程序結束才會銷毀
    2.局部變量只會生成一份內存,只會初始化一次
    3.改變局部變量的作用域
寫法:
//方法內部static修飾的變量不管調用與否,只會調用一次
- (void)staticTest
{
    // static修飾局部變量
    static int age = 0;
    age++;
    NSLog(@"%d",age);
}
//即調用兩次該方法
//打印結果
//1
//2
  • 修飾全局變量
    1.只能在本文件中訪問,修改全局變量的作用域,生命周期不會改
    2.避免重復定義全局變量
寫法:
// 全局變量:只有一份內存,所有文件共享,與extern聯合使用。
// 寫在方法外部
// static修飾全局變量
static int age = 20;
//調用
extern int age;
NSLog(@"%d",age);
//打印結果
//20

extern

extern作用:

  • 只是用來獲取全局變量(包括全局靜態變量)的值,不能用于定義變量

extern工作原理:

  • 先在當前文件查找有沒有全局變量,沒有找到,才會去其他文件查找。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. static作用: 用static修飾的變量,程序一運行就會分配一次內存 - 修飾局部變量 * 延長這個局...
    G_M閱讀 194評論 0 0
  • 1.OC里用到集合類是什么? 基本類型為:NSArray,NSSet以及NSDictionary 可變類型為:NS...
    輕皺眉頭淺憂思閱讀 1,394評論 0 3
  • 1.項目經驗 2.基礎問題 3.指南認識 4.解決思路 ios開發三大塊: 1.Oc基礎 2.CocoaTouch...
    陽光的大男孩兒閱讀 5,042評論 0 13
  • static 修飾局部變量 讓局部變量只初始化一次 局部變量在程序中只有一份內存 并不會改變局部變量的作用域,僅僅...
    大沖哥閱讀 1,394評論 0 1
  • 唯有愛與美食不可辜負 這是沙茶醬的信仰 在每一個尋找自己的路上 最讓我惦記莫過于食尖上的誘惑 還有那個曾同我一起看...
    魁歌閱讀 1,585評論 3 5