в каком сегменте программы хранятся указатели функций? - PullRequest
0 голосов
/ 17 сентября 2010

Я хотел знать, в каком разделе программы хранятся указатели функций?Например, это в программном стеке или есть отдельный раздел для того же самого?

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

Теперь, адреса х и fp будут в одном и том же сегменте стековой памяти программы?

Ответы [ 2 ]

5 голосов
/ 17 сентября 2010

Указатель функции ничем не отличается от любого другого указателя с точки зрения хранения, что опять-таки ничем не отличается от любой другой переменной.Так что да, они все будут храниться вместе в одном месте, которое является стеком локальных переменных.

1 голос
/ 17 сентября 2010

При хорошем компиляторе они нигде не будут существовать, потому что их значения никогда не используются и ничего не влияют на вывод программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...