因此,我正在对编译器进行一些试验(我的 C++“职业生涯”已经达到了这一点),我注意到对 _rotl
的调用会被直接编译/汇编;我的意思是,不是程序集执行调用
,(尽管只有 2 个)操作码似乎直接剪切/粘贴到调用所在的位置。
这背后的原因是什么?我认为该术语是“内联函数”,但我可能弄错了。
最佳答案
它不是内联函数,它是一个 intrinsic function .旨在利用目标处理器的特定功能。它无条件地内联并且没有以其他方式声明内联函数,通常只生成一条机器代码指令。在 _rotl() 的情况下,使用 x86 ROL 指令。
关于c++ - 内联函数调用推理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666448/