#define、#undef、Preprocessor Macr
2018-01-18 本文已影响53人
Billlin
#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预编译成立。