预处理命令

来源:互联网 发布:更新驱动哪个软件知乎 编辑:程序博客网 时间:2024/05/31 19:11

转自:吴乃陵《C++程序设计》

      编译预处理(即预编译)是在编译源程序之前,由预处理器对源程序进行一些加工处理工作。所谓预处理器,是包含在编译器中的预处理程序。编译预处理指令一律以“#”开头,回车符结束,每条指令占一行,并且通常放在源程序文件的开始部分。

编译程序预处理作用是将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译并生成目标代码,因此编译预处理不影响源程序文件内容。

转自:谭浩强《C程序设计》

       ANSI C司标准规定可以在C源程序中加入一些“预处理命令”,以改进程序设计环境,提高编程效率。这些预处理命令是由ANSI C统一规定的,但是它不是C语言本身的组成部分,不能直接对它们进行编译(因为编译程序不能识别它们)。必须在对程序进行通常的编译(包括词法分析、代码生成、优化等)之前,先对程序中这些特殊的命令进行“预处理”,即根据预处理命令对程序作相应的处理(例如,若程序中用#define命令定义了一个符号常量A,则在预处理命令时将程序中所有的A都置换为指定的字符串。若程序中用#include命令包含一个文件“stdio.h”,则在预处理时将stdio.h文件中的实际内容代替命令)。

      经过预处理后的程序不再包含预处理命令了,最后再由编译程序对预处理后的源程序进行通常的编译处理,得到可供执行的目标代码。现在使用的许多C编译系统都包括了预处理、编译和连接等部分,在进行编译时一气呵成。

      C提供的预处理的功能主要有以下3种:

1.宏定义

2.文件包含

3.条件编译

文件包含:即将指令中所包含的代码,全部插入到,指令所在位置。

转自:孙鑫视频(图)

原创粉丝点击