#define            定义一个预处理宏
#undef            取消宏的定义
#if                   编译预处理中的条件命令,相当于C语法中的if语句
#ifdef              判断某个宏是否被定义,若已定义,执行随后的语句
#ifndef            与#ifdef相反,判断某个宏是否未被定义
#elif                若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if
#else              与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else
#endif             #if, #ifdef, #ifndef这些条件命令的结束标志
defined           与#if, #elif配合使用,判断某个宏是否被定义

1、 #ifndef    #else    #endif
#ifndef  标识符
         //程序段1
#else
        //程序段2
#endif
若标识符未被定义则执行程序段1,否则执行程序段2。

#ifndef 和 #ifdef 相反。

2、 #define    #undef
#define:定义一个宏

#undef:取消宏定义

3、defined
defined:用来测试某个宏是否被定义。 若宏被定义,则返回1,否则返回0。

与#if、#elif、#else结合使用来判断宏是否被定义

4. #if、#elif、#else、#endif 
#if 常量表达式1
    // 程序段1
#elif 常量表达式2
    // 程序段2
#else
    // 程序段3
#endif
 常量表达式可以是包含宏、算术运算、逻辑运算等等 。如果常量表达式为一个未定义的宏, 那么它的值被视为0。例如:

#if DEBUG // 等价于
 
#if 0
 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐