第1页共11页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共11页在将一个C源程序转换为可执行程序的过程中,编译预处理是最初的步骤
这一步骤是由预处理器(preprocessor)来完成的
在源流程序被编译器处理之前,预处理器首先对源程序中的"宏(macro)"进行处理
C初学者可能对预处理器没什么概念,这是情有可原的:一般的C编译器都将预处理,汇编,编译,连接过程集成到一起了
编译预处理往往在后台运行
在有的C编译器中,这些过程统统由一个单独的程序来完成,编译的不同阶段实现这些不同的功能
可以指定相应的命令选项来执行这些功能
有的C编译器使用分别的程序来完成这些步骤
可单独调用这些程序来完成
在gcc中,进行编译预处理的程序被称为CPP,它的可执行文件名为cpp
编译预处理命令的语法与C语言的语法是完全独立的
比如:你可以将一个宏扩展为与C语法格格不入的内容,但该内容与后面的语句结合在一个若能生成合法的C语句,也是可以正确编译的
(一)预处理命令简介--------------------------------------------------------------------------------预处理命令由#(hash字符)开头,它独占一行,#之前只能是空白符
以#开头的语句就是预处理命令,不以#开头的语句为C中的代码行
常用的预处理命令如下:#define定义一个预处理宏#undef取消宏的定义#include包含文件命令#include_next与#include相似,但它有着特殊的用途#if编译预处理中的条件命令,相当于C语法中的if语句#ifdef判断某个宏是否被定义,若已定义,执行随后的语句#ifndef与#ifdef相反,判断某个宏是否未被定义#elif若#if,#ifdef,#ifndef或前面的#elif条件不满足,