宏定义的优缺点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宏定义的优缺点相关的知识,希望对你有一定的参考价值。

接下来看看宏都有什么好处:

1. 提高了程序的可读性,同时也方便进行修改;

2. 提高程序的运行效率:使用带参的宏定义既可完成函数调用的功能,又能避免函数的出栈与入栈操作,减少系统开销,提高运行效率;

3.宏是由预处理器处理的,通过字符串操作可以完成很多编译器无法实现的功能。比如##连接符。

但是它也有自己的缺点:

1. 由于是直接嵌入的,所以代码可能相对多一点;

2. 嵌套定义过多可能会影响程序的可读性,而且很容易出错;

3. 对带参的宏而言,由于是直接替换,并不会检查参数是否合法,存在安全隐患。

 补充:     预编译语句仅仅是简单的值代替,缺乏类型的检测机制。这样预处理语句就不能享受C++严格的类型检查的好处,从而可能成为引发一系列错误的隐患。

以上是关于宏定义的优缺点的主要内容,如果未能解决你的问题,请参考以下文章

iOS宏定义介绍

inline函数

C++之内联函数

有关宏定义的bug

bingc++01

C++--模板的概念和意义深入理解函数模板类模板的概念和意义