C中预处理的用法
预处理命令用来改进编程环境,提高编程效率。在对程序进行编译之前,先对程序中的特殊预处理命令进行“预处理”(如替换)。预处理命令并不是c语言的一部分。C提供的预处理命令主要有三种:宏定义、文件包含、条件编译。这些命令符号用“#”开头。
宏定义包括带参数的宏定义和不带参数的宏定义。#define是宏定义命令。不带参数的格式为:“#define 标识符 字符串 ” 带参数的宏定义格式为:“#define 宏名(参数表) 字符串”。个人理解,宏定义就是为方便程序运行而定义的常量(不带参数的宏定义)和简单函数运算(带参数的宏定义)。在使用宏定义是需要注意的点有:宏名一般大写、是字符串的简单替换(所以强调的是以后的引用必须完全一样,对命名简明性的要求)、行尾不加分号、作用域默认为源文件结束但也可以用#undef来表示终止宏的作用域、宏定义以及终止必须都在函数体外、宏可以层层置换(即此宏用毕红)、只做字符置换不分配内存空间、宏替换不占运行时间只占编译时间
“文件包含”处理:一个源文件的内容可以将另一个源文件的内容全部包含进来。一般格式:“#include “文件名””或“#include <文件名>”,可以节省程序员的重复劳动问题。在经过编译预处理后将头文件包含到主文件夹中,得到一个新的源程序,然后对这个文件进行编译,得到一个目标文件。这种常用的头部文件称为“标题文件”或“头文件”,常以“.h”、“.c”为后缀或者没有后缀。使用时应注意:头文件的包含关系和引用顺序之间的关系。常用头文件介绍:
条件编译(满足条件则编译)
(1)#ifdef
程序段1
#else
程序段2
#endif
(2)#ifndef 标识符
程序段1
#else
程序段2
#endif
(3)#if 表达式
程序段一
#else
程序段2
#endif