при компиляции с c89 и c99 по умолчанию для gcc 4.4.2 используется c99?

StackOverflow https://stackoverflow.com/questions/2122527

  •  22-09-2019
  •  | 
  •  

Вопрос

Я использую 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.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top