printf("Debugging information:\n"); #endif 在此代码中,使用#define指令定义了一个名为DEBUG的标识符,然后使用#ifdef指令测试该标识符是否已经被定义。由于DEBUG已经被定义,所以该代码段中的printf语句将会被编译到最终的可执行文件中。 如果将代码改为以下形式,则该代码段将不会被编译: //#define DEBUG #ifdef...
if defined(__DEBUG__) 如果定义了宏 __DEBUG__ 可以在编译选项中加这个宏,也可以在调用代码前用#define命令来定义这个宏,也可以不定义 define Msg(msg) printf("%s\n", msg) 如果定义了宏 __DEBUG__,则遇到Msg(msg) 这样的语句,就会替换成printf("%s\n", msg)else define M...
/*#endif用于终止#if预处理指令。*/ ifdef 和 #ifndef #include <stdio.h> #define DEBUG main() { #ifdef DEBUG printf("yes "); #endif #ifndef DEBUG printf("no "); #endif } //#ifdefined等价于#ifdef; //#if!defined等价于#ifndef #else指令 #elif指令 其他一些指令 #error指令将使编译器显...
#ifndefDEBUG printf("no "); #endif } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. #ifdefined等价于#ifdef;#if!defined等价于#ifndef 4.#else指令 #else指令用于某个#if指令之后,当前面的#if指令的条件不为真时,就编译#else后面的代码。#endif指令将中指上面的条件块。 #defineDEBUG main() { #...
1 #ifdef DEBUG 2 printf("device_open(%p)\n", file); 3 #endif 如果在它的前面有以下命令行#define DEBUG,则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可,这时所有使用DEBUG作标识符的条件编译段中的printf语句不起作用,即起到“开关”一样统一控制的作用。
defined(DEBUG) #ifdef、#ifndef、#else、#endif #ifdef用于判断某个宏是否定义,和#ifndef功能正好相反,二者仅支持判断单个宏是否已经定义 #ifdef ABC #ifndef ABCD_H #if、#elif、#else、#endif #if可支持同时判断多个宏的存在,与常量表达式配合使用。常用格式如下: #if 常量表达式1 常量表达式可以是包含宏、...
#if defined(DEBUG) //执行调试代码 #endif ``` 三、条件编译 "defined"还可以用于条件编译,即根据宏的定义情况编译不同的代码块。例如,我们可以根据不同的操作系统来编译不同的代码段: ```c #if defined(WIN32) // Windows平台下的代码 #elif defined(LINUX) // Linux平台下的代码 #elif defined(MAC)...
ifdef DEBUG 测试语句 endif 意思是,如果DEBUG已经被定义,则编译时将以下语句编译,否则忽略,这样,只需要把#define DEBUG这一句注释掉,编译器就可以忽略所有测试语句,而只要去掉注释,编译器又会把这些测试语句编译,非常方便。ifndef类似,就是如果此标识符没有被定义过,则编译下列语句。还有疑问欢迎...
。在这个例子中,DEBUG宏已经被定义了,因此输出结果为Debug mode is enabled.。 除了#ifdef,还有其他的条件预处理指令可以用于检查宏的定义,例如#ifndef用于检查宏是否未定义,#if defined用于检查宏是否已定义并且其值为真等。根据具体的需要,可以选择适合的条件预处理指令来检查宏的定义。 亿速云「云服务器」,即...