【发布时间】:2012-04-06 02:33:32
【问题描述】:
我知道函数指针存储函数的地址。
int fun(int x){
//return something
}
int (pfun*)(int)=&fun;
int main(){
std::cout << &fun << "\n"; // this print out 1
std::cout << fun << "\n" ; // this print out 1
std::cout << &pfun << "\n"; // this print out 0x0022ff40
std::cout << pfun << "\n" ; // this print out 1
}
所以我的问题是:
1) 如果 fun() 甚至没有地址,pfun 怎么能指向 fun()。
2) 例如在动态绑定中,当我在运行时使用指针函数时。编译器是否将 pfun 值更改为像 0X 一样的真实指针.....以便在运行时知道要调用哪个函数,因为编译后名称不存在?
【问题讨论】: