при компиляции с c89 и c99 по умолчанию для gcc 4.4.2 используется c99?
Вопрос
Я использую gcc 4.4.2 в Linux
Мне просто интересно, gcc автоматически по умолчанию компилирует c99 в качестве последнего стандарта?
Как мне указать, хочу ли я компилировать c89 или c99?
Большое спасибо за любой совет,
Решение
Одна из причин не использовать C99 по умолчанию заключается в том, что этот стандарт еще не полностью реализован в компиляторе.Однако я считаю, что вы можете установить режим по умолчанию при компиляции gcc, поэтому, если выбор стандартов для вас действительно важен, лучше всегда отказываться от этой опции.
Варианты: -std=c99
и -std=c89
соответственно.
Другие советы
Из 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.
Не связан с StackOverflow