#define、#undef、Preprocessor Macros、if、#if、#ifdef、#ifndef

#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预编译成立。

你可能感兴趣的:(#define、#undef、Preprocessor Macros、if、#if、#ifdef、#ifndef)