c/c++预处理过程详解(一)之文件包含、宏定义

未经博主同意不得私自转载!不准各种形式的粘贴复制本文及盗图!


其实本文原本是打算研究一下#define的,后来发现预处理是个不可避免的问题。

在讲#define 前需要讲讲 #

# 涉及到宏的概念,宏是编译器预处理的一个重要步骤

 

先讲讲预处理吧,因为预处理是c/c++的一个重要知识点

C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。

预处理命令属于C语言编译器,而不是C语言的组成部分。

 在集成开发环境中,编译,链接是同时完成的。其实,C语言编译器在对源代码编译之前,还需要进一步的处理:预编译。

 

 

  预编译的主要作用如下:

 

1.将源文件中以”include”格式包含的文件复制到编译的源文件中。 ---------->文件包含

2.用实际值替换用“#define”定义的字符串。 ---------->宏定义

3.根据“#if”后面的条件决定需要编译的代码。 ---------->条件编译


所以C语言预处理:

①. 文件包含

②. 宏定义

③. 条件编译

我做了几张图帮大家理一下思路:

首先是预处理包含三大过程:



其中文件包含:


宏定义:



其中条件编译篇幅比较长见另一篇文章详解。


ps:一切内容均是本人根据网上各种途径,翻阅书籍等方式总结提炼的,如果设计版权希望能及时提醒更改。同时希望注重保护他人成果!


posted @ 2016-08-20 15:23  Joe.Smith  阅读(227)  评论(0编辑  收藏  举报