上面的代码在DEBUG 模式下是会输出一句话的,你可以把这种应用放在你希望对程序的执行过程进行跟踪的代码里,为它们加上一些‘痕迹’,方便你进行判断。而在其他模式(RELEASE)下,这个函数只不过是一个空函数,又因为它是inline的,所以它实际上不会为你产生任何代码。这样你就能为自己的代码带来一种非常实用的效果,既能...
1.#include<stdio.h>2.#include<stdlib.h>3.intmain(){4.#ifdef _DEBUG5.printf("正在使用 Debug 模式编译程序...\n");6.#else7.printf("正在使用 Release 模式编译程序...\n");8.#endif10.system("pause");11.return0;12.} #include<stdio.h>#include<stdlib.h>intmain(){#ifdef_DEBUGprintf...
可以使用#define指令在代码的任何地方定义一个标识符,并在之后的代码中使用它。 1#defineDEBUG2#ifDEBUG3Console.WriteLine("这是调试模式下的代码");4#else5Console.WriteLine("这是发布模式下的代码");6#endif 在上面的代码中,通过#define指令定义了DEBUG标识符,然后使用#if指令来判断是否定义了标识符。如果定义...
intmain(){ #ifdef _DEBUG printf("正在使用 Debug 模式编译程序...\n"); #else printf("正在使用 Release 模式编译程序...\n"); #endif system("pause"); return0; } 当以Debug 模式编译程序时,宏 _DEBUG 会被定义,预处器会保留第 5 行代码,删除第 7 行代码。反之会删除第 5 行,保留第 7 行。
当以Debug 模式编译程序时,宏 _DEBUG 会被定义,预处器会保留第 5 行代码,删除第 7 行代码。反之会删除第 5 行,保留第 7 行。 #ifndef 的用法 #ifndef 用法的一般格式为: #ifndef 宏名 程序段1 #else 程序段2 #endif 与#ifdef 相比,仅仅是将 #ifdef 改为了 #ifndef。它的意思是,如果当前的宏未...
#ifdef DEBUG print ("device_open(%p) ", file); #endif 如果在它的前面有以下命令行: #define DEBUG 则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将printf语句删除去。的确,这是可...
#endif //__DEBUG_RUN_TEST_H__ 上述代码的含义为:如果__DEBUG_RUN_TEST_H__宏未被定义,那么就定义它,并执行头文件内容。如果__DEBUG_RUN_TEST_H__宏已经被定义了,那么就不再执行头文件内容,避免重复定义的问题。 当一个头文件被多次引用时,第一次引用时会执行头文件内容,同时定义__DEBUG_...
#ifdef DEBUG print ("device_open(%p)\n", file); #endif 如果在它的前面有以下命令行: #define DEBUG 则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将printf语句删除去。的确,这是...
#ifdef DEBUG print ("device_open(%p)/n", file); #endif 1. 2. 3. 4. 5. 如果在它的前面有以下命令行: #define DEBUG 1. 则在程序运行时输出file指针的值,以便调试分析。调试完成后只需将这个define命令行删除即可。有人可能觉得不用条件编译也可达此目的,即在调试时加一批printf语句,调试后一一将...
I386_TYPES_H ifndef _I386_TYPES_H //如果没有定义过_I386_TYPES_H define _I386_TYPES_H //那么就定义_I386_TYPES_H ………//此处进行进一步处理 ………//比如包含那些结构 或者库函数之类的 endif //结束if 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!vaela ...