条件编译
条件编译:
编译器根据一些条件的成立与否来确定编译源代码中的一部分代码。
条件编译指令:
#if、#else、#elif和#endif指令
#ifdef和#ifndef
#error
指令将使编译器显示一条错误信息,然后停止编译。
#line
指令可以改变编译器用来指出警告和错误信息的文件号和行号。
#pragma
指令没有正式的定义。编译器可以自定义其用途。典型的用法是禁止或允许某些烦人的警告信息。
条件编译最常见的形式:
形式1:#ifdef
#define 标识符 #ifdef 标识符 //程序段1 #else //程序段2 #endif
注释:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
标识符就像一个开关一样,故称为编译开关。
形式2:#if
#define a 1 #if 表达式 //程序段1 #elif 表达式2 //程序段2 #else //程序段3 #endif
注释:表达式为1=>编译程序段1;表达式不为1为2=>编译程序段2;
a:编译开关。
形式3:
define 在vs工程属性->C/C++->预处理指令->把你的编译开关所用的关键字加入到预处理定义栏里.
目的:
这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。
内容源自:
百度百科
http://baike.baidu.com/link?url=axzkmXmqU3Bx-MnI3i5XIMzCPMX-yNzxP_Sjhu95aq7wnjPTj-u3NzCUN2-UQJbZrlP2fSTQCV4eQGMRCLRDDK