Se memorizzo un puntatore a una funzione, e in un secondo momento durante l'esecuzione del mio programma, lo confronta con l'indirizzo della stessa funzione, i due indirizzi sono garantiti uguali.Le funzioni C hanno un indirizzo di memoria fisso?
E.g.
int foo(void){return 0;}
int (*foo_p)(void) = &foo;
assert(foo_p == &foo);
Nel codice sopra è l'affermazione sempre garantito per avere successo? Ci sono qualsiasi circostanze in cui l'indirizzo di una funzione può cambiare?