loopunrolling ha scritto:
Dunque come già sottolineato dal grande @MAW,è bene usare le costanti definiti dallo standard C che si fa carico di tradurre EXIT_SUCCESS e le altre costanti nell'intero corretto corrispondente per il SO su cui viene eseguito il nostro programma.
Ringrazio loopunrolling per la valida aggiunta, alla quale si può aggregare un ulteriore classico esempio. Nei sistemi DOS tradizionali il valore di ritorno assume obbligatoriamente le dimensioni e il range di un
intero non segnato a 8 bit, perché la chiamata alla corrispondente funzione DOS 4Ch di INT 21h si attende che il solo semiregistro AL contenga tale valore, in maniera coerente con la gestione della variabile d'ambiente ERRORLEVEL e relativi valori di test (che come noto devono appartenere all'intervallo intero [0, 255]) entro le istruzioni IF dei file batch. Passare erroneamente valori di dimensioni maggiori e/o segnati (ad esempio usando spensieratamente una enum definita in qualche libreria in un port da Win32 CLI verso un PC industriale con ROMDOS o PTS-DOS) può causare gravi malfunzionamenti a livello di interoperabilità tra eseguibili, come pure tra eseguibile e sistema.
Quindi, a maggior ragione, vale il consiglio di rispettare lo standard e di usare sempre le costanti manifeste previste dal compilatore: anche in un banale esercizio didattico. Non è mai troppo presto per imparare a programmare in modo corretto.