1. 程式人生 > >C++輸出函式地址的方法

C++輸出函式地址的方法

我們知道,C++的函式是指令的集合,程式的入口地址用函式名標識。跳轉到程式入口地址就可以依次執行集合中的指令。那麼,如果想輸出函式的地址應該怎麼做呢?

#include<iostream>
using namespace std;
void haha(){
    cout<<"haha"<<endl;
}
int main()
{
    cout<<haha<<endl;
    return 0;
}

很遺憾,上面程式輸出的結果是1。原因是C++中的cout物件沒有對函式指標作為輸入引數的<<運算子過載。函式把輸入引數haha當做bool量處理。解決辦法,把函式指標進行強制型別轉換為(void*)型。如下:
#include<iostream>
using namespace std;
void haha(){
    cout<<"haha"<<endl;
}
int main()
{
    cout<<(void*)haha<<endl;
    return 0;
}