条件编译

条件编译:

  编译器根据一些条件的成立与否来确定编译源代码中的一部分代码。

条件编译指令:

#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

 

posted @ 2015-09-29 22:16  shinymood  阅读(255)  评论(0编辑  收藏  举报