- 1.宏:宏的替换:1、在调用宏时首先对其参数检查如果参数又包含#define定义的符号,则它们首先被替换 2、替换文本会被插入到程序中原本文本的地方宏名会被参数所替换 3、朂后再扫描文本,如果还有#define定义的符号则重复上面操作。
- 宏与函数的区别1、每次使用时宏代码都被插入到程序中,除了非常小的宏外程序的代码都会大幅提升。而函数代码只出现同一个地方 2、宏的执行速度更快,而函数在调用和返回时有额外的开销 3、宏的求值可能会产生副作用。函数只在调用时求值一次将值传递给函数。 4、宏与类型无关只要对参数的操作是合法的,它可以使用任何类型参数函数参数与类型有关,形参和实参类型必须一致 5、宏替换实在编译期间进行的,所以不能调试函数调用实在执行期间,可以调试
莋用:条件编译的功能使我们可以按照不同的条件去编译不同的程序部分,因而产生不同的目标代码文件
- 3.文件包含:在预编译处理阶段於处理器发现#include指令之后,会将文件的内容
包含到当前文件进行编译1、#include<filename>采用<>,预处理到系统规定的路径中去获得这个文件找到文件内容後用文件内容替换该语句。 2、#include“filename”“”标识预处理先在当前目录中查过这个文件,若找不到再按系统指定的路径信息搜索路径信息搜索其他目录找到文件后用文件内容替换该语句。
4.其他指令:1、#error 生成编译错误提示信息并停止编译。 2、#ine改变当前行数
编译:1、语法分析 2、詞法分析 3、语义分析 4、符号汇总 5、文本语言转换成汇编语言
发布了39 篇原创文章 · 获赞 13 · 访问量 1万+