【iOS基础知识】const与宏的区别
生活随笔
收集整理的這篇文章主要介紹了
【iOS基础知识】const与宏的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
const與宏的區別
區別:
處理時刻:宏是預處理時(即在預處理時把宏展開,替換為原來的值),const是編譯運行時(編譯器在編譯時會檢查錯誤,程序在運行時,從內存(堆或棧)中讀取)
編譯檢查:宏不會編譯報錯,const會包編譯錯誤
宏好處:可以定義函數和方法、const不可以定義函數和方法
宏壞處:大量使用宏,會使編譯時間太久,每次編譯都需要替換
?
宏:
1、常見的常量,定義為宏,例如appName,age
#define kAge 202、常見的方法,定義為宏,例如UserDefault
#define kUserDefault [NSUserDefaults standardUserDefaults]?
const
const只用于修飾右邊的變量(基本數據變量p,指針變量*p),被const修飾的變量是只讀的。
1、修飾基本數據變量,這兩種方法是一樣的,const只修飾右邊的變量。
const int b = 20; // b:只讀變量 int const b1 = 20; // b:只讀變量2、修飾指針變量(const修飾右邊的變量),所以,它*p1是常量,p1是變量
const int *p1; // *p1:常量 p1:變量 int const *p1; // *p1:常量 p1:變量下面這個例子,第一個const,修飾的是*p1,第二個修飾p1,故:*p1、p1都是常量
const int * const p1; // *p1:常量 p1:常量int const * const p1; // *p1:常量 p1:常量?3、const 修飾 oc對象
// 字符串常量 static NSString * const kAppName = @"Wexin";?
對于NSString類型的常量,蘋果推薦使用const,推薦用法:
UIKIT_EXTERN NSString *const UITableViewSelectionDidChangeNotification;?
轉載于:https://my.oschina.net/Misayalvyuan/blog/716642
總結
以上是生活随笔為你收集整理的【iOS基础知识】const与宏的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【无私分享:ASP.NET CORE 项
- 下一篇: mongodb query