您的位置:首页 > 其它

define与inline的区别

2010-03-16 21:02 381 查看
define成为"宏",在C语言编程中非常重要,它在程序编译时只是在预处理的过程中实施简单的替换操作而已。由于在替换过程中可能出现的各种不安全性问题,在C++提倡采用const或者inline(内联函数)的方式替代宏。

内联函数和普通函数相比可以加快程序的运行速度,但它是以增加程序存储空间维代价的,由于不需要中断调用,在编译内联函数的时候内联函数可以直接被嵌入目标代码中。

对于短小的代码,inline可以带来一定效率的提升,且与C时代的define(宏)相比,它更安全可靠。

宏和内联函数的主要区别如下:

1.宏是代码处不加任何验证的简单替代,而内联函数是将代码直接插入调用处,而减少了普通函数调用时的资源消耗。

2.宏不是函数,只是在编译前预处理阶段将程序中有关字符串替换成宏体。

3.inline是函数,但在编译中不单独产生代码,而是将有关代码嵌入到调用处。

许多C程序员的经验表明,宏会为程序设计带来不小的安全隐患,许多由宏产生的问题就是实证。

所以在C++中引入的const关键字以及inline函数可以完成与宏同样的功能,且更安全,更可靠。

结论:逐步舍弃define,慢慢过渡到C++的标准上来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: