今天,我给大家简单介绍一下宏定义的相关内容。
在介绍宏定义之前,我先给大家介绍一下Linux,为什么介绍宏定义需要用到Linux呢,大家有没有听过IDE,全称Integrated Development Environment,中文名字叫集成开发环境,什么是集成开发环境,如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等,这都是集成开发环境。集成开发环境是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发服务 。所以大家在用vs那些开发环境的时候,发现写完代码点一下,或者按一下F5,你的代码就开始运行了。当然集成开发环境给大家极大方便的同时,也有一定的缺点,例如很多时候你需要研究一个程序的中间过程的时候,就不能很清楚的看到一个程序预处理、编译和汇编的过程。
将程序编程目标文件的过程有三步,预处理、编译、汇编。
在预处理阶段,主要进行以下几个内容:1.宏替换2.头文件展开3.去掉代码中的注释4.条件编译。前三个都很好理解编译器做了些什么,我说一下第四个条件编译,例如if.....else语句,在预处理阶段程序会对代码中的判断条件进行编译,大家也知道,如果if后边的判断语句是真那么就会执行,同样编译器也十分的聪明,如果你的if后边是真那else的语句编译器便不再去编译。
在编译阶段编译器做到的是将你所编写的c代码或者其他语言的代码变成汇编代码
在汇编阶段编译器做到的是将所翻译过来的汇编代码变成机器语言,就是变成机器语言二进制。
通过我简单的介绍之后,大家也就能明白,如果你想研究宏定义就不能用我们平时用的集成开发环境,你需要用到Linux系统,在Linux中一个程序变成目标文件的过程是可以划分开来的,所以这样我们就能研究程序的一步步变化。<