当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 【2018.10.11 C与C++基础】C Preprocessor的功能及缺陷(草稿)

【2018.10.11 C与C++基础】C Preprocessor的功能及缺陷(草稿)

2018年10月12日  | 移动技术网IT编程  | 我要评论

汉威大厦地址,爱情蹦极跳,2010年春节联欢晚会下载

一、前言及参考资料

c preprocessor即所谓的c预处理器,c++也继承了c的预处理程序,但在c++语言的设计与演化一书中,c++的设计者bjarne strustrup提及他从未喜欢过c预处理器,认为c预处理器尤其是其中的宏定义存在许多缺陷,破坏了程序设计语言的类型系统及变量的作用域边界等等,但是语言设计者却很难为预处理中的各种功能找到具有更好结构而又高效的替代品。

我们知道在编译c/c++程序时,一般会经过预处理、编译、汇编、链接这四个阶段。

其中预处理在编译过程中发挥着不可替代作用,可以改善程序结构、完善程序功能、增强可扩展性、自动生成专为特定体系结构配置而调整的代码等,但是预处理在文本替换、名称连接、条件编译、命名空间、代码冗余等很多方面存在文法以及语义上的缺陷,从而导致所开发的软件系统重用性不高,难以对软件进行维护配置等。

c preprocessor的基本功能包括:

1. 文件包含,#include文件包含将在预处理阶段从其他文件中复制程序正文;

2. 宏定义,#define定义的无参数宏及可变参数宏等;

3. 条件编译,#ifdef等指示字可以控制在编译过程中是否包括一些代码;

4. 控制特定的实现方式,#pragma用于设定编译器的状态或者为编译器指定与平台相关的编译处理方式。

参考资料:

1. c宏系统缺陷 https://www.cnblogs.com/cheukyin/p/4571928.html

2. c中的预处理器 https://www.xuebuyuan.com/3248462.html

3. 详解c/c++预处理器 https://blog.csdn.net/qq_22642239/article/details/80525409

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网