#ifndef是if not defined的缩写,也可以写成#if !defined 即如果没有定义; #ifdef是if defined的缩写,也可以写成#if defined 即检查是否定义过; 4、#ifdef 和 #if defined 的区别 #ifndef 与#if !defined 的区别相类似,都在于后者可以组成复杂的预编译条件,前者只判断单个宏是否定义 例如: #if defined(PERL_...
不,当这样使用时,两者之间没有区别。当初始#if或后续#elif条件之一需要更复杂的测试时,后一种形式(使用defined())很有用。#ifdef仍然可以工作,但在这种情况下使用#if defined()可能会更清楚。例如,如果它需要测试是否定义了多个宏,或者它是否等于特定值。 差异(在一个文件中使用两者)可能取决于使用中的特定微妙...
2.#if defined的使用 #ifdefined (宏)代码.#endif 这个#if后面接的是一个宏,意思是前面的宏定义里面有没有定义这个宏,如果定义了,编译器就会编译中间的代码,如果没有定义,那就不会编译,不管这个宏定义的是什么东西,对不对等。 #ifdef的使用 ifdef的使用和#if defined()的用法是一样的。 ifndef又和#if !d...
#elif若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if #else与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else #endif#if, #ifdef, #ifndef这些条件命令的结束标志. defined与#if, #elif配合使用,判断某个宏是否...
伪指令,条件编译,#if,#ifdef,#ifndef,#elif,#else,#endif,defined等,以及作用: 使用条件编译可以控制预处理器选择不同的代码段作为编译器的输入,使源代码在不同的编译条件下产生不同的代码。 平时在代码中常见的if,else if的语句,是在程序运行时的判断语句,用来决定程序的运行方向。 条件编译伪指令是在代码编译...
// defined 与#if, #elif配合使用,判断某个宏是否被定义 #include "stdio.h" #include "conio.h" #define MAX #define MAXIMUM(x, y) (x > y) ? x : y #define MINIMUM(x, y) (x > y) ? y : x int main() { int a = 10, b = 20; #ifdef MAX printf("\40: The larger one is...
defined #ifdef只能判断单一的宏是否定义,而#if defined()可以组成复杂的判别条件; 对于单一的宏AAA来说,#ifdef AAA和#if defined(AAA)是完全相同的。 而要组成复杂的判别条件,用#if defined()就灵活方便了,比如:#if defined(AAA) && (BBB >= 10)...
ifdef的使用和#if defined()的用法是一样的。 ifndef又和#if !defined()的用法一样(取反的意思)。 虽然条件编译看着很简单,但是实现起来就比较复杂了,条件多的情况下#if 得套好几层。。。我用到的目前就这么多,更加高深的用法以后用到了再研究补充。
一些小边注: 命令#elif是"elseif"的一种缩写,并且他可以想你所意愿的一样工作. 你也可以在一个#if后插入一个"defined"或者"!defined"以获得更多的功能. 这里是一部分例子: AI检测代码解析 #ifdef DEBUG cout << "This is the test version, i=" << i << endl; ...
#if defined __INTEL_COMPILER #pragma warning disable 2196 2536 279 #endif #if defined _MSC_VER // 4244 : conversion from 'type1' to 'type2', possible loss of data // 4661 : no suitable definition provided for explicit template instantiation reques ...