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,

È stato utile?

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
scroll top