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++的标准上来。
内联函数和普通函数相比可以加快程序的运行速度,但它是以增加程序存储空间维代价的,由于不需要中断调用,在编译内联函数的时候内联函数可以直接被嵌入目标代码中。
对于短小的代码,inline可以带来一定效率的提升,且与C时代的define(宏)相比,它更安全可靠。
宏和内联函数的主要区别如下:
1.宏是代码处不加任何验证的简单替代,而内联函数是将代码直接插入调用处,而减少了普通函数调用时的资源消耗。
2.宏不是函数,只是在编译前预处理阶段将程序中有关字符串替换成宏体。
3.inline是函数,但在编译中不单独产生代码,而是将有关代码嵌入到调用处。
许多C程序员的经验表明,宏会为程序设计带来不小的安全隐患,许多由宏产生的问题就是实证。
所以在C++中引入的const关键字以及inline函数可以完成与宏同样的功能,且更安全,更可靠。
结论:逐步舍弃define,慢慢过渡到C++的标准上来。
相关文章推荐
- C语言学习历程(五)define、inline的区别及特点
- 在网上查找资料,学习define和inline的区别
- define和inline 的区别
- define与 inline的区别
- define和inline的区别
- define与inline的区别
- define与inline的区别
- 20140808 const和define区别 内联函数(inline) 栈和堆的地址分配 栈帧
- const, static, define 以及inline的区别
- define和inline的区别
- define与inline的区别
- 请教define,const,typedef,inline的区别
- inline define区别
- define和 inline的区别
- define与const、inline、typedef的区别
- define和inline 的区别
- c++中 inline与define的区别
- define与inline的区别
- C/C++ 常见易混淆关键字区别 define/const,define/inline,malloc/new
- inline和define的特点和区别