#define
簡單的宏定義捂龄。
#define MAXTIME 1000
#define MAXTIME true
#define MAXTIME
沒有設置值的宏定義不能在if條件語句和#if預編譯語句中使用释涛,但是可以在#ifdef和#ifndef中使用。
#define CONDITION
#ifdef CONDITION 為true
#ifndef CONDITION 為false
#undef
取消宏定義倦沧。
#undef MAXTIME
Preprocessor Macros
Build Settings 下的 Preprocessor Macros 是設置全局宏定義的地方唇撬。在Preprocessor Macros下設置宏定義,如果沒有設置值展融,默認值為true窖认。
if
if不是預編譯指令,只是判斷語句告希。if判斷語句中可以使用有值的宏扑浸。當宏的值不為false時,if判斷語句成立燕偶,反之當宏的值為false時喝噪,if判斷語句不成立。
#if
預編譯條件判斷指令指么,條件只能是Bool類型的值仙逻。當條件為true時驰吓,#if預編譯條件判斷成立,反之當條件為false時系奉,#if預編譯條件判斷不成立。
#ifdef
預編譯指令姑廉,只會判斷宏是否被定義過缺亮,不會判斷宏的值。也可以使用沒有值的宏桥言,當宏有被定義過萌踱,則#ifdef預編譯成立,反之号阿,當宏沒有被定義過并鸵,則#ifdef預編譯不成立。
#ifndef
預編譯指令扔涧,只會判斷宏是否被定義過园担,不會判斷宏的值。也可以使用沒有值的宏枯夜,當宏有被定義過弯汰,則#ifdef預編譯不成立,反之湖雹,當宏沒有被定義過咏闪,則#ifdef預編譯成立。