内联函数调用推理

Qix*_*Qix 1 c++ assembly disassembly

所以我正在对编译器做一些尝试(我在C++'职业'中就是这一点)并且我注意到调用_rotl直接编译/汇编; 通过这种方式,我的意思是代替执行a的程序集call,(虽然只有2个)操作码似乎直接在调用的地方剪切/粘贴.

这背后的原因是什么?我相信这个术语是"内联函数",但我可能会弄错.

Han*_*ant 6

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

  • 呃,非便携式.并不总是好的. (2认同)