{ #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...
不能。#define #if #else是预处理指令,编译器不做预处理的嵌套工作。
预编译指令格式错误。if define (IBMPC)应改为#ifdef IBMPC 这种结构是为了防止头文件嵌套包含。一般的用法是 ifndef _IBMPC_H define _IBMPC_H include"ibmpc.h"...endif
return 0; /** 预处理指令什么时候执行? 编译之前 变量什么时候定义? 执行了才会定义 注意点: 1.条件编译不能用来判断变量,因为不在同一个声明周期 2.一般情况下,条件编译和宏定义是结合在一起使用的 条件编译和选择结构if的共同点 都可以对给定的条件进行判断,添加满足或者不满足都可以执行特定的代码 ...
#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等价于...