前言
面試題大全中提到了好多關于define的面試題婶芭,正好找到一篇介紹define很好的奧东臀,還活著哦寫的博客,整理總結
1犀农、一年有多少秒
#define SECONDS_PER_YEAR (60*60*24*365)UL
為什么加ul 一開始我也不知道 惰赋,l代表long,如果在16位的系統(tǒng)上(ios有16位的么)606024*365會超過15位的溢出了呵哨,所以給一個long類型赁濒,u代表的是無符號數(shù),畢竟這個時間不可能是負數(shù)孟害,恩是這樣的
2拒炎、x平方函數(shù)
#define SQR(x) ((x)*(x))
這里可以看到有很多的括號,為何呢挨务。寫成SQR(x) xx行不行击你,當然一般情況下是可以的,如果x=10+1谎柄,這個表達式就編程10+110+1,代碼驗證過了丁侄。恩所以還是多寫括號吧。
3朝巫、取消宏定義undef
#define SQR(x) ((x)*(x))
#undef SQR
以上操作可以取消SQR的宏定義鸿摇,簡單粗暴
4、求最大值
#define MAX(x, y) ((x)>(y) ? (x) : (y))
最小值同理劈猿,其實我目前接觸到的oc這邊用到的宏定義比較簡單拙吉,原博文介紹c語言中的用法比較多。
原作者說了一句話非常厲害
define 是個演技高超的替身演員揪荣,但也經(jīng)常耍大牌