{ #if 0 printf("#if ...#endif 之间的语句永远不会被执行!\n"); #endif printf("但这里会执行\n"); return0; } 二、在涉及到C语言的项目时,可能有人会注意到里面出现了#if 0这样的语句,既然里面的语句永远不会被执行,那为什么要留下这样的代码呢? 看下面的例子: 1 2 3 4 5 6 7 8 9 10 ...
条件编译里面有判断语句,比如 #if 、#else 、#elif 及 #endif 它的意思是如果宏条件符合,编译器就编译这段代码,否则,编译器就忽略这段代码而不编译,如 define A 0 //把A定义为0 if (A > 1)printf("A > 1"); //编译器没有编译该语句,该语句不生成汇编代码 elif (A == 1)p...
#defineDEBUG0 main() { #ifDEBUG printf("Debugging\n"); #endif printf("Running\n"); } 由于程序定义DEBUG宏代表0,所以#if条件为假,不编译后面的代码直到#endif,所以程序直接输出Running。 如果去掉#define语句,效果是一样的。 3.#ifdef和#ifndef #defineDEBUG main() { #ifdefDEBUG printf("yes\n")...
由于程序定义DEBUG宏代表0,所以#if条件为假,不编译后面的代码直到#endif,所以程序直接输出Running。 如果去掉#define语句,效果是一样的。 3.#ifdef和#ifndef #defineDEBUG main() { #ifdefDEBUG printf("yes\n"); #endif #ifndefDEBUG printf("no\n"); #endif } #ifdefined等价于#ifdef;#if!defined等价于...