我知道函数指针存储函数的地址。
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 之类的真实指针......以便在运行时知道要调用哪个函数,因为编译后名称不存在?