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