la compilazione con C89 e C99 non predefinito 4.4.2 gcc per C99?
Domanda
Sto usando gcc 4.4.2 su linux
Mi chiedo solo non gcc utilizza automaticamente la compilazione con C99 come il più recente standard?
Come è possibile specificare se voglio compilare con C89 o C99?
Molte grazie per qualsiasi consiglio,
Soluzione
Una ragione per non utilizzare C99 di default è perché questo standard non è pienamente attuato nel compilatore ancora. Tuttavia, credo che è possibile impostare la modalità predefinita quando si compila gcc, quindi se la scelta di standard è importante per voi, è meglio sempre a passare l'opzione.
Le opzioni sono rispettivamente -std=c99
e -std=c89
.
Altri suggerimenti
Dalla pagina gcc(1)
man:
-std=
Determine the language standard. This option is currently only
supported when compiling C or C++.
....
c99
c9x
iso9899:1999
iso9899:199x
ISO C99. Note that this standard is not yet fully supported;
see <http://gcc.gnu.org/gcc-4.4/c99status.html> for more
information. The names c9x and iso9899:199x are deprecated.
gnu89
GNU dialect of ISO C90 (including some C99 features). This is
the default for C code.
gnu99
gnu9x
GNU dialect of ISO C99. When ISO C99 is fully implemented in
GCC, this will become the default. The name gnu9x is
deprecated.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow