首页 > 解决方案 > C++ 函数或函数指针的正确地址是什么

问题描述

typedef int (*fooPtr)(int);

int foo(int a) {
    return a + 1;
}


int main(){

    void* funcPtr1 = reinterpret_cast<void*>(foo);
    void* funcPtr2 = foo;
    void* funcPtr3 = &foo;
    fooPtr funcPtr4 = foo;


}

在 Visual Studio 的 Watch 窗口中,我得到所有 funcPtr (1-4) 的相同地址,但是当我输入函数名称本身时foo;我得到一个不同的地址。函数的实际地址是什么foo。意思是,汇编器最终将运行的实际代码。那么备用地址是什么?

观察窗口

标签: c++visual-c++function-pointers

解决方案


推荐阅读