程序的哪个部分是存储的函数指针?

时间:2010-09-17 00:58:22

标签: c function function-pointers

我想知道程序的哪个部分是存储的函数指针?就像在,它是在程序堆栈上还是有一个单独的部分?

void f(void){}
int main(void){
 int x[10];
 void (*fp)(void) = NULL;
 fp = f;
 return 0;
}

现在,x和fp的地址是否在程序堆栈内存的同一段?

2 个答案:

答案 0 :(得分:5)

在存储方面,函数指针与任何其他指针没有区别,这与任何其他变量无异。所以是的,它们将全部存储在同一个地方,这是局部变量的堆栈。

答案 1 :(得分:1)

使用良好的编译器,它们将不会存在于任何地方,因为它们的值从未使用过,并且对程序的输出没有任何贡献。