产业气象站|零基础推荐收藏,C/C++编程笔记:C语言预编译指令—条件编译( 二 )


4.#if、#elif、#else、#endif
#if可支持同时判断多个宏的存在 , 与常量表达式配合使用 。 常用格式如下:
#if常量表达式1//...somecodes#elif常量表达式2//...othercodes#elif常量表达式3//......#else//...statement#endif
常量表达式可以是包含宏、算术运算、逻辑运算等等的合法C常量表达式 , 如果常量表达式为一个未定义的宏,那么它的值被视为0 。
#ifMACRO_NON_DEFINED//等价于#if0
在判断某个宏是否被定义时 , 应当避免使用#if , 因为该宏的值可能就是被定义为0 。 而应当使用#ifdef或#ifndef 。
注意:#if、#elif之后的宏只能是对象宏 。 如果宏未定义 , 或者该宏是函数宏 , 则编译器可能会有对应宏未定义的警告 。
五、总结本文主要介绍c语言中有关于编译的指令 。 撰写本文的目的在于理清相关概念调用 , 在后续预编译使用时可以找到最合适的指令及格式 。 比如同时满足多个宏定义的预编译、多分支预编译、#elif和#else指令的配合等 。
自学C/C++编程难度很大 , 不妨和一些志同道合的小伙伴一起学习成长!


推荐阅读