巨集,static、const 、extern簡介
巨集
巨集的常見用法
- 常用的字串要抽成巨集
- 常用的程式碼抽成巨集
#define DCScreenW [UIScreen mainScreen].bounds.size.width
#define DCUserDefaults [NSUserDefaults standardUserDefaults]
const
const:當有字串常量的時候,蘋果推薦我們使用const
const 的作用
- 僅僅是用來修飾右邊的變數(只能修飾變數:基本變數,指標變數,物件變數)
- const修飾的變數,表示只讀,不能修改
- const書寫規範:一定要放在變數的左邊 下面兩種定義方法沒有區別
int const a = 10;
const int a = 10;
int *const p = &a; //p是隻讀的
int const *p = &a; //*p是隻讀的
int const * const p = &a; //*p是隻讀的 ,p也是隻讀的
const開發中的使用場景
- 定義一個全域性只讀變數
- 在方法中定義只讀引數
static
static作用
修飾區域性變數
1.延長這個區域性變數的生命週期,只要程式執行,區域性變數就會一直存在區域性;
2.變數只會分配一次記憶體,為什麼?用static修飾的程式碼,在程式一啟動就會執行,以後就不會再執行 ;修飾全域性變數
1.只會修改全域性變數的作用域,表示只能在當前檔案內使用;
extern
extern作用
- 只能宣告全域性變數,不能定義變數
注意:extern修飾的變數不能初始化
extern使用場景:一般用於宣告全域性變數
總結
static和const修飾效果
- static和const修飾全域性變數
- static修飾全域性變數,修改作用域,表示在當前檔案中使用
- const修飾全域性變數,變數只讀
- static和const一起修飾就是靜態全域性只讀變數
const與巨集的區別
- 編譯時刻:巨集:預編譯(看見#就是預編譯) const:編譯時刻
- 編譯檢查:巨集:不會檢查錯誤 const:會檢查錯誤
- 巨集的好處:可以定義程式碼
- 巨集的壞處:編譯時間過長,因此常用的字串使用const修飾
- blog:經常使用巨集記憶體不會增加。只會分配一個記憶體,但是經常使用引用巨集的指標,就會分配多個記憶體
相關文章
- const,static,extern簡介
- extern、 const、static的理解
- iOS之const,static,extern使用iOS
- iOS常用關鍵字static、const、extern、defineiOS
- iOS中的static const extern關鍵字iOS
- C中的auto、static、register、extern、const和volitate
- C++關鍵字(static/register/atuo/extern/volatile/const)釋疑 (轉)C++
- static 和extern的區別
- c++基礎知識(八)C/C++中修飾符const、extern、static、volatile的用法C++
- C++ static、const和static const變數 以及它們的初始化C++變數
- const與static的區別
- inline、const、mutable、this、staticinline
- const、define 和 static 的區別
- c# const_static readonlyC#
- C++中的static成員、static const成員和const成員的初始化C++
- C/C++中Static和Const的作用C++
- C程式記憶體的分配,const ,volatile,staticC程式記憶體
- C++之static_cast,dynamic_cast,const_castC++AST
- Flutter 知識梳理 (Dart) - Dart 中 static, final, const 區別FlutterDart
- iOS 靜變數static、全域性變數extern、區域性變數、例項變數iOS變數
- define巨集定義和const常量定義之間的區別
- C++知識點隨筆(三):static、const、friend、inlineC++inline
- 介紹下extern和標頭檔案的聯絡
- C#中 Const 、readonly、static 之間的差別和關係C#
- C 語言中 static 的作用介紹
- extern c 解析
- 嵌入式學習資源—說說使用static和const關鍵字
- 【ES6基礎】const介紹
- CWE-500:宣告為public static的域沒有標記final缺陷簡介
- 簡單易懂 —— this、self、static 的區別
- extern用法詳解
- extern "c" 用法解析
- extern "C" __declspec(dllexport)Export
- extern作用詳解
- extern "c"的用法
- Laravel 中簡約而不簡單的 Macroable 巨集指令LaravelMac
- C++中const的簡單用法C++
- const * and * const