第8章 C51的预处理命令和用户配置文件

用户编写的C51程序代码只能控制程序的执行流程,若要对编译程序进行操作,就要用到预处理命令。在编译环境对源程序进行编译前,先对程序中的预处理命令进行处理,然后将处理结果和源程序一起进行编译。

预处理命令通常只进行一些符号的处理,其并不执行具体的单片机硬件操作。C51语言中的预处理命令包括文件包含指令、宏定义指令和条件编译指令等,还有其他一些指令在程序调试时使用。本章将详细介绍各种常用的预处理命令的用法,同时还介绍了与C51的用户配置文件相关的内容。

8.1 C51的预处理命令概述

C51语言中提供了各种预处理命令,其作用类似于汇编程序中的伪指令。一般来说,在对C51源程序进行编译前,编译器需要先对程序中的预处理命令进行处理,然后将预处理的结果和源代码一并进行编译,最后产生目标代码。预处理命令通常只进行一些符号的处理,并不执行具体的硬件操作。

为了与C51源代码中的程序语句相区别,预处理命令前要加一个“#”。C51语言中的预处理命令,如表8.1所示。

以上这些预处理命令按照其功能,可以分为如下所示的几类。

❑文件包含指令:#include。

❑宏定义指令:#define、#undef。

❑条件编译指令:#if、#else、#ifdef、#ifndef、#endif。

❑其他功能编译指令:#line、#error、#pragma。

第8章 C51的预处理命令和用户配置文件 - 图1

这些预处理命令为C51提供功能和符号等方面的扩展,使用预处理命令也可以提高程序的可读性。下面就分别对这几类预处理命令的使用进行详细介绍。

提示预处理命令后面一般不用添加分号,如果在#define最后有分号,在宏替换时分号也将替换到源代码中去。在宏名和字符串之间可以有任意个空格。