Я использую gcc 4.4.2 на Linux
Я просто задаюсь вопросом, gcc автоматически принимает значение по умолчанию к компиляции с c99, поскольку это - последний стандарт?
Как я могу указать, хочу ли я скомпилировать с c89 или c99?
Большое спасибо за любой совет,
Одной из причин не использовать C99 по умолчанию, является то, что этот стандарт не полностью реализован в компиляторе. Тем не менее, я считаю, что вы можете установить режим по умолчанию при компиляции GCC, так что если выбор стандартов действительно имеет значение для вас, лучше пройти опцию.
Варианты -Std = C99
и -Std = C89
соответственно.
Из gcc(1)
man page:
-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.