C99
From cppreference.net
<
c
ISO/IEC 9899:1999 , также известный как C99 , является предыдущей редакцией стандарта C.
|
Этот раздел не завершён
Причина: основные/библиотечные возможности, TC1~TC3, DRs |
Содержание |
Новые возможности языка
- Универсальные символы в идентификаторах
- Увеличенные ограничения трансляции
- // комментарии
- restrict указатели
-
Расширенные
арифметические типы
- _Bool
- long long и unsigned long long
- Расширенные целочисленные типы
- _Complex типы ( float _Complex , double _Complex , и long double _Complex )
- _Imaginary типы ( float _Imaginary , double _Imaginary , и long double _Imaginary )
- Гибкие элементы массивов
- Массивы переменной длины (VLA) типы и изменяемо-модифицированные (VM) типы
-
Улучшения
списка инициализации в фигурных скобках
для
массивов
,
структур и объединений
типов
- Непостоянные инициализаторы
- Назначенные инициализаторы
- Идемпотентные cvr-квалификаторы
- Завершающая запятая в списке перечисления
- Шестнадцатеричные плавающие константы
- Составные литералы
- Окружение с плавающей точкой
- Требование усечения для делений знаковых целочисленных типов
-
Неявный
return
0
;
в
main()функции - Объявления и операторы в смешанном порядке
- Инициализирующее выражение в for циклах
- inline функции
- Предопределенная переменная __func__
- Cvr-квалификаторы и static в [ ] в объявлениях функций
- Вариативные макросы
- _Pragma оператор препроцессора
-
Стандартные прагмы для вычислений с плавающей точкой
-
STDCFENV_ACCESS -
STDCFP_CONTRACT -
STDCCX_LIMITED_RANGE
-
Макросы проверки функций для опциональных возможностей
-
__STDC_IEC_559__
- Указывает, что поддерживается арифметика двоичных чисел с плавающей запятой IEEE-754 и требуемые математические функции.
-
__STDC_IEC_559_COMPLEX__
- Указывает, что поддерживается комплексная арифметика IEEE-754 и требуемые математические функции.
-
__STDC_HOSTED__
- Указывает, что реализация является hosted .
-
__STDC_ISO_10646__
- Указывает, что в широких литералах используется кодировка Unicode и раскрывается в последнюю поддерживаемую ревизию.
-
__STDC_MB_MIGHT_NEQ_WC__
- Указывает, что некоторые символы базового набора символов имеют различные значения кодовых единиц в обычной и широкой кодировках литералов .
Новые возможности библиотеки
Новые заголовки
Функции библиотеки
-
Псевдонимы целочисленных типов
-
Целочисленные типы с точной шириной (
int N _tиuint N _t) -
Самые быстрые целочисленные типы с минимальной заданной шириной (
int_fast N _tиuint_fast N _t) -
Наименьшие целочисленные типы с минимальной заданной шириной (
int_least N _tиuint_least N _t) - Целочисленные типы для преобразования между указателями на объекты ( intptr_t и uintptr_t )
- Целочисленные типы с максимальной шириной ( intmax_t и uintmax_t )
-
Целочисленные типы с точной шириной (
- Операции с long long и intmax_t
- Доступ к окружению чисел с плавающей точкой
-
Расширенные математические функции для чисел с плавающей точкой
- Новые математические функции для чисел с плавающей точкой
-
Варианты -
fи -lдля существующих и новых математических функций с плавающей точкой - Обработка математических ошибок
- Комплексные функции
- _Exit()
- Поддержка форматирования для long long , unsigned long long , intmax_t , и uintmax_t
- isblank() и iswblank()
- snprintf() и vsnprintf()
- vfscanf() и vfwscanf() семейства функций
-
Расширения для
fscanf()
и
fprintf()
семейств функций
-
llмодификатор длины для long long и unsigned long long -
hhмодификатор длины для signed char и unsigned char -
lмодификатор длины для double -
zмодификатор длины для size_t и его знаковой версии -
tмодификатор длины для ptrdiff_t и его беззнаковой версии -
jмодификатор длины для intmax_t и uintmax_t -
aспецификатор преобразования для типов с плавающей точкой
-
- Макросы числовых ограничений для long long и unsigned long long
- Макросы числовых ограничений для существующих и новых псевдонимов целочисленных типов
- Макросы строк формата для целочисленных типов
- va_copy
- Обобщенные математические макросы
- Макросы сравнения чисел с плавающей точкой
- Макросы классификации чисел с плавающей точкой
- Макросы совместимости для _Bool ( bool , true , и false )
Устаревшие возможности
Удаленные возможности
- Неявный int в объявлениях
- Неявные объявления функций
Устаревшие возможности
Отчеты о дефектах
Template:c/language/history/DR99
Поддержка компиляторами
Основные возможности языка C99
|
Этот раздел не завершён
Причина: требуется перечислить компиляторы C, верификация |
|
Функция C99
|
Документ(ы)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| Универсальные символы в идентификаторах | 3.1 | Да | Да | ||||||||
| Увеличенные лимиты трансляции | N590 | 0.9 | N/A | ||||||||
| // комментарии | N644 | 2.7 | Да | Да | |||||||
| restrict указатели | N448 | 2.95 | Да | частично * | |||||||
| Улучшенные arithmetic types |
N815
N601 N620 N638 N657 N694 N809 |
Да | частично | Возможно | |||||||
| Гибкие элементы массива | 3.0 | Да | Да | ||||||||
| Массивы переменной длины (VLA) типы | N683 | 0.9 | Да | ||||||||
| Типы с изменяемой модификацией (VM) | N2778 | N/A | Да | ||||||||
| Назначенные инициализаторы | N494 | 3.0 | Да | Да | |||||||
| Непостоянные инициализаторы | 1.21 | N/A | |||||||||
| Идемпотентные cvr-квалификаторы | N505 | 3.0 | N/A | ||||||||
| Запятая в конце enumerator-list | 0.9 | Да | Да | ||||||||
| Шестнадцатеричные floating constants | N308 | 2.8 | Да | Да | |||||||
| Составные литералы | N716 | 3.1 | Да | Да | |||||||
| Окружение с плавающей точкой | частично | частично | |||||||||
| Требование усечения для делений знаковых целочисленных типов | N617 | 0.9 | N/A | ||||||||
Неявный
return
0
;
в
main()
функции
|
Да | Да | Да | ||||||||
| Объявления и операторы в произвольном порядке | N740 | 3.0 | Да | Да | |||||||
| init-statement в for циклах | Да | Да | Да | ||||||||
| inline функции | N741 | 4.3 | Да | Да | |||||||
| Предопределённая переменная __func__ | N611 | 2.95 | Да | Да | |||||||
| Cvr-квалификаторы и static в [ ] в объявлениях функций | 3.1 | Да | |||||||||
| Вариативные макросы | N707 | 2.95 | Да | Да | |||||||
| _Pragma оператор препроцессора | N634 | 3.0 | Да | частично * | |||||||
| Стандартные прагмы для вычислений с плавающей точкой |
N631
N696 |
Нет | Нет | ||||||||
|
Функция C99 |
Документ(ы) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|