【发布时间】:2020-07-15 22:02:28
【问题描述】:
所以关键字“inline”会导致调用被函数体替换,对吗? 所以我猜这意味着我们完全跳过电话?就像我们查看 .asm 文件时找不到调用指令一样?
【问题讨论】:
-
inline 建议编译器考虑将其用于内联。如果它确实被内联,则对函数的所有调用都将替换为函数的主体。
-
现代 C++ 编译器中
inline的主要用途是避免违反 One Definition Rule -
视情况而定,如果大多数编译器未能
inline某事,则会发出警告。 -
@Taekahn 所以在汇编指令 lvl 中,我们没有看到任何调用指令对吗?
-
@ヅヅヅ 是的,IF 一个函数被内联,那么在调用该函数的位置没有使用调用指令。函数的实际主体代码直接插入调用站点,就好像没有函数存在一样。
标签: c++ function inline inline-assembly machine-code