C语言中的条件编译

条件编译属于三种宏定义中的一种

条件指示符的最主要目的是防止头文件的重复包含和编译,例如:一个c文件包含同一个h文件多次,如果不加#ifndef宏定义,会出现变量重复定义的错误

条件编译的命令的三种形式:

形式1
  # ifdef 标识符
  
/*程序段 1*/
  #
else
  
/*程序段 2*/
  # endif
  
//它的作用是当标识符已经由#define定义过了,则编译程序段1,否则编译程序段2
// 简单形式
  # ifdef 标识符
  
/*程序段1*/
  # endif
形式2
  # ifndef 标识符
  # define 标识符
  
/*程序段 1*/
  #
else
  
/*程序段 2*/
  #e n di f
  
//它的作用是当标识符没有由#define定义过,则编译程序段1,否则编译程序段2
  
// 简单形式
  # ifndef 标识符
  # define 标识符
  
/*程序段 1*/
  # endif
形式3
  #
if 表达式
  
/*程序段 1*/
  #
else
  
*程序段 2*/
  # endif
  
//它的作用是 当“表达式”值为真时编译程序段1。否则则编译程序段2
// 简单形式
  # if 表达式
  
/*程序段 1*/
  # endif
  
//以上三种形式的条件编译预处理结构都可以嵌套使用


//标识符: 在理论上来说可以是自由命名的,但每个头文件的这个标识符都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h

#ifndef _STDIO_H_
#define _STDIO_H_

/*程序段 */

#endif

posted @ 2011-04-27 15:20  软践  阅读(1564)  评论(0编辑  收藏  举报