只在 windows下编译器作用,其他环境比如 linux 就不会编译到。
#ifdefWIN32 /*使用VisualC++ 6.0作为编译器时,"WIN32"自动被VC定义,*/ #defineVC /*从而定义了"VC"*/ #endif intmain(void){#ifdefVC /*如果VC被定义,执行下面的代码*/ C6.0\n"); #else /*否则(即VC未被定义),执行下面的代码*/ /*使用TurboC作为编译器时执行*/ textbackground(BLUE); /*背景...
#elif _WIN32 // Windows平台相关代码 #else // 其它平台相关代码 #endif 通过使用不同平台的内置宏(例如__linux__、_WIN32等),可以根据不同的操作系统编写平台相关的代码块,以实现跨平台的兼容性。 调试信息开关 //#define DEBUG #ifdef DEBUG // 调试模式下的代码 #endif 通过定义或注释掉DEBUG宏,来控制...
在这里找到的一些解释我都感觉讲的有点复杂了。我看到这个博主是讲的最清楚的。 链接: ifdef、define、endif这些关键字的作用是什么?. 1. 注释掉一段代码 不加#define 条件编译命令最常见的形式就如上图所示,在没有加#define DEBUG的情况下,编译器自动把cout << "ifdef debug" << endl;变浅了。输出......
设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。
#ifdef 与#endif 在函数中的作用?及其用法?CV_IMPL CvCapture * cvCreateFileCapture (const char * filename){ CvCapture * result = 0; #ifdef WIN32 if (! result) result = cvCreateFileCapture_Win32 (filename); #endif #ifdef HAVE_FFMPEG if (! result) result = cvCreateFileCapture_FFMPEG (filenam...
这样做的原因是VC没有textbackground()这个函数,为了不改变源程序而适应不同的编译器,这种条件编译(conditional compilation)的方法比较有用. 另外,有些Windows API对操作系统的版本有要求,这时条件编译又可派上用场了. */ #i nclude <stdio.h> #i nclude <conio.h> #ifdef WIN32 /*使用Visual C++ 6.0作为...
9 // ... use Win32 API 10 11 #endif 这些都是条件编译的常用情境。 三、条件编译中使用的预编译指令 #define 定义一个预处理宏 #undef 取消宏的定义 #if 编译预处理中的条件命令,相当于C语法中的if语句 #ifdef 判断某个宏是否被定义,若已定义,执行随后的语句 ...
9 // ... use Win32 API 10 11 #endif 这些都是条件编译的常用情境。 三、条件编译中使用的预编译指令 #define 定义一个预处理宏 #undef 取消宏的定义 #if 编译预处理中的条件命令,相当于C语法中的if语句 #ifdef 判断某个宏是否被定义,若已定义,执行随后的语句 ...
7 #ifdef _WIN32 8 9 // ... use Win32 API 10 11 #endif 这些都是条件编译的常用情境。 三、条件编译中使用的预编译指令# #define 定义一个预处理宏 #undef 取消宏的定义 #if 编译预处理中的条件命令,相当于C语法中的if语句 #ifdef 判断某个宏是否被定义,若已定义,执行随后的语句 ...