文/Edward
前面我们在讲解程序编译的时候,编译器做的第一步就是预处理。C语言的预处理,其实是编译器在对整个工程编译之前做的一些文本性质的工作,例如我们经常使用的#include,这就是一个典型的文件包含预处理,当启动编译的时候,编译器首先先做预处理,即将#include后面包含的那个文件里面的内容,全部复制到当前的.c文件中来,接着,再进行C语言源文件的编译。除了文件包含之外,C语言中的预处理还有很多,而这些预处理对于我们编程来说,都可以帮助我们提高代码的易读性和代码质量。
#define
#define预处理的作用,一般在一些书上面仅仅称其为“宏定义”,其实这个称呼是不严谨的,一个#define预处理其实包含两种意思,第一种意思是“宏定义”,第二个层面的意思是替换,下面的内容,我们将会以上面两层意思分开讲解。
#define替换
也许我们在单片机编程中,绝大多数用户使用的仅仅只是#define预处理的替换功能,#define的替换格式为:
#define NAME 需要替换的内容
比如,我们一般常用的用来定义圆周率Π,就可以写成:
#define PI 3.1415926
那么以后的程序代码里面只要出现PI这个标号,编译器都将直接将其替换成一