c++ - 内联函数调用推理

标签 c++ assembly disassembly

因此,我正在对编译器进行一些试验(我的 C++“职业生涯”已经达到了这一点),我注意到对 _rotl 的调用会被直接编译/汇编;我的意思是,不是程序集执行调用,(尽管只有 2 个)操作码似乎直接剪切/粘贴到调用所在的位置。

这背后的原因是什么?我认为该术语是“内联函数”,但我可能弄错了。

最佳答案

它不是内联函数,它是一个 intrinsic function .旨在利用目标处理器的特定功能。它无条件地内联并且没有以其他方式声明内联函数,通常只生成一条机器代码指令。在 _rotl() 的情况下,使用 x86 ROL 指令。

关于c++ - 内联函数调用推理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666448/

相关文章:

c# - 在 C# 中访问安全资源

c - 直接调用信号处理程序和通过 raise() 调用的信号处理程序之间的堆栈差异?

c++ - 每行从文件行中读取一个字符串,只读取第一个单词

具有唯一静态成员的 C++ 模板

c - 在汇编程序中,为什么寄存器的使用在加法和减法之间有所不同?

delphi - 为什么Delphi编译器不内联汇编函数?

c - 如何用gdb调试成C程序对应的反汇编?

c++ - 这两种比较STL vector 的方法有什么区别?

c++ - 十六进制解码器输出为空

assembly - 固件是机器码吗?