Ho sentito che in C, main() è rientrante, mentre in C++ no.La funzione principale() rientranti?
È vero? Qual è lo scenario del reinserimento nella funzione main()?
Ho sentito che in C, main() è rientrante, mentre in C++ no.La funzione principale() rientranti?
È vero? Qual è lo scenario del reinserimento nella funzione main()?
Le prime implementazioni di C++, basate sulla traduzione in C, hanno implementato i costruttori globali aggiungendo una chiamata di funzione all'inizio di main
. In base a tale implementazione, chiamando di nuovo main
si riavviavano i ctors globali, causando il caos, quindi era semplicemente proibito farlo.
C d'altra parte non aveva motivo di vietare di chiamare main
, ed era sempre tradizionalmente possibile.
Per quanto riguarda quando è utile, direi "raramente". La maggior parte dei programmi che ho visto che hanno chiamato main
erano voci IOCCC.
Non penso che tu intenda [rientrante] (http://en.wikipedia.org/wiki/Reentrancy_ (informatica)). È vero, tuttavia, che è possibile chiamare 'main' in C e non è possibile chiamarlo in C++. –