se avete qualcosa di simile:ciò che accade a una funzione C statica che non si chiama
int _tmain(int argc, _TCHAR* argv[]) {
int i;
#if (num>99)
i = func();
#else
i= func2();
#endif
return 0;
}
static int func()
{
return 1;
}
static int func2()
{
return 2;
}
E 'ragionevole aspettarsi che a seconda se num
è più grande o più piccolo, allora il 99 etere func
o func2
sarà rimosso dal codice runtime?
O preferirei incorporare le funzioni in un #if
per raggiungere questo obiettivo?
"Il codice di runtime" non fa parte dello standard C, quindi lo standard C non può rispondere a questa domanda. È una questione di come funziona il tuo linker. La rimozione del codice morto è sicuramente una strategia di ottimizzazione conosciuta e utilizzata che è disponibile su molte piattaforme. –