用c89和c99编译gcc 4.4.2默认为c99吗?

时间:2010-01-23 07:50:01

标签: c c99 c89

我在linux上使用gcc 4.4.2

我只是想知道gcc是否自动默认使用c99作为最新标准进行编译?

如何指定是否要使用c89或c99进行编译?

非常感谢任何建议,

2 个答案:

答案 0 :(得分:10)

默认情况下不使用C99的一个原因是因为此标准尚未在编译器中完全实现。但是,我相信您可以在编译gcc时设置默认模式,因此如果标准的选择对您来说真的很重要,那么最好总是通过该选项。

选项分别为-std=c99-std=c89

答案 1 :(得分:9)

来自gcc(1)手册页:

   -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.