如何判断一个函数是嵌入的还是有自己的地址和实现,比如非嵌入函数?编译器可以忽略该指令,尤其是当我询问函数的地址时。以及如何判断不清楚,只看汇编代码?
#include <iostream>
void func () {
std::cout << "func";
}
inline void func2() { func(); }
int main()
{
std::cout << uint64_t(&func) << " || " << uint64_t(&func2) << std::endl;
// Пример вывода: 4199872 || 4204384
return 0;
}
这是如何定义的。在帮助下
inline,意识到编译器可能会或可能不会内联它,或者甚至可能在没有任何inline...的情况下内联它一些编译器具有强制编译器使用内联的扩展(例如,
__forceinline在 Visual C++ 中),但这已经是非标准的......