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