未经博主同意不得私自转载!不准各种形式的粘贴复制本文及盗图!
其实本文原本是打算研究一下#define的,后来发现预处理是个不可避免的问题。
在讲#define 前需要讲讲 #
# 涉及到宏的概念,宏是编译器预处理的一个重要步骤
先讲讲预处理吧,因为预处理是c/c++的一个重要知识点
在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。
预处理命令属于C语言编译器,而不是C语言的组成部分。
在集成开发环境中,编译,链接是同时完成的。其实,C语言编译器在对源代码编译之前,还需要进一步的处理:预编译。
预编译的主要作用如下:
1.将源文件中以”include”格式包含的文件复制到编译的源文件中。 ---------->文件包含
2.用实际值替换用“#define”定义的字符串。 ---------->宏定义
3.根据“#if”后面的条件决定需要编译的代码。 ---------->条件编译
所以C语言预处理:
①. 文件包含
②. 宏定义
③. 条件编译
我做了几张图帮大家理一下思路:
首先是预处理包含三大过程:
其中文件包含:
宏定义:
其中条件编译篇幅比较长见另一篇文章详解。
ps:一切内容均是本人根据网上各种途径,翻阅书籍等方式总结提炼的,如果设计版权希望能及时提醒更改。同时希望注重保护他人成果!