• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

内联函数和宏的区别

renshengrumengya 2018-05-17 浏览量:896
内联函数和宏的区别,希望大家多发表自己的见解
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 两个实现对于一般性的函数可以认为是效果是一样的,只不过完成工作的阶段不同,宏在预编译,内联是在编译的时候。细节上的不同主要是宏的替换规则是完全的文本替换,而内联还是根据真实的函数来进行的。由此引发的明显差异就是内联函数对于错误会提示更明确一些。相对的,宏替换能实现的功能会更灵活
    • 发布于 2018-05-17
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 宏是会展开的(而且可能是多层展开),但宏本身是不能静态排错的(没有类型检查之类),切展开宏后可能函数还是调用的。

    内联函数是以空间换速度,所有调用该函数都会直接插入函数体部分(而不是调用),切支持类型检查。

    • 发布于2018-05-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 一个是函数,其有一定的逻辑关系与功能。只是在编译时会把函数的语句嵌入到引用的地方。

    而宏,只是会取代当引用的地方,至于功能上,很单调

    • 发布于2018-05-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 内联函数,是函数,宏,是个符号,预编译时候替代了
    • 发布于2018-05-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 内联函数是告诉编译器在调用处展开,但是有时编译器处于优化的目的并不会这么做,而定义宏就一定会在调用处展开
    • 发布于2018-05-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 内联函数和宏完全不同,内联函数的作用是将函数语句直接复制到执行位置,执行完再回收,减少了堆栈进出的操作,而宏是用于替换字符的,作用完全不同。

    • 发布于2018-05-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

内联函数和宏的区别