我一直认为像 printf()
这样的函数在最后一步是使用内联汇编定义的。在 stdio.h 的内部深处隐藏着一些真正告诉 CPU 该做什么的高斯代码。例如,在 dos 中,我记得它是通过首先将字符串的开头 mov
ing 到某个内存位置或寄存器,然后调用 int
terupt 来实现的。
然而,由于 x64版本的 Visual Studio 根本不支持内联汇编,这让我想知道为什么在 C/C + + 中根本就没有汇编定义的函数。像 printf()
这样的库函数如何在不使用汇编代码的情况下在 C/C + + 中实现?什么实际上执行了正确的软件中断?谢谢。