inline和#define的区别

 我来答
蛮小夜11195
2016-03-06 · TA获得超过332个赞
知道答主
回答量:194
采纳率:96%
帮助的人:50.5万
展开全部
  define称为“宏”,在C语言编程中非常重要,它在程序编译时只是在预处理的过程中实施简单的替换操作而已,但是在替换过程中可能出现各种不安全性问题,不进行参数有效性检查。
  内联函数和普通函数相比可以加快程序的运行速度,但它是以增加程序存储空间为代价的,由于不需要中断调用,在编译内联函数的时候内联函数可以直接被嵌入目标代码中。
  对于短小的代码,inline可以带来一定效率的提升,且与C时代的define(宏)相比,它更安全可靠。宏和内联函数的主要区别如下:
  1. 宏是代码处不加任何验证的简单替代,而内联函数是将代码直接插入调用处,而减少了普通函数调用时的资源消耗。
  2. 宏不是函数,只是在编译前预处理阶段将程序中有关字符串替换成宏体。
  3. inline是函数,但在编译中不单独产生代码,而是将有关代码嵌入到调用处。
  总结如下:
  对于一般常量,最好用const和enum替换#define;
  对于类似函数的宏,最好改用inline函数替换#define。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式