Поддержка типов
См. также обзор системы типов и арифметические типы, определённые языком.
Базовые типы
Дополнительные базовые типы и вспомогательные макросы
Определено в заголовочном файле <stddef.h> |
|
|---|---|
беззнаковый целочисленный тип, возвращаемый оператором sizeof (определение типа) |
|
| знаковый целочисленный тип, возвращаемый при вычитании двух указателей (определение типа) |
|
|
(C23) | тип предопределённой константы нулевого указателя nullptr (определение типа) |
| константа нулевого указателя, определяемая реализацией (макроконстанта) |
|
|
(C11) | тип с требованием к выравниванию не меньшим, чем у любого другого скалярного типа (определение типа) |
| смещение в байтах от начала типа структуры до указанного члена (функциональный макрос) |
|
Определено в заголовочном файле <stdbool.h> |
|
|
bool
(C99)(удалён в C23) | вспомогательный макрос, раскрывается в _Bool (макрос ключевого слова) |
|
true
(C99)(удалён в C23) | раскрывается в целочисленную константу 1 (макроконстанта) |
|
false
(C99)(удалён в C23) | раскрывается в целочисленную константу 0 (макроконстанта) |
|
__bool_true_false_are_defined
(C99)(устарел в C23) | раскрывается в целочисленную константу 1 (макроконстанта) |
Определено в заголовочном файле <stdalign.h> |
|
|
alignas
(C11)(удалён в C23) | вспомогательный макрос, раскрывается в ключевое слово _Alignas (макрос ключевого слова) |
|
alignof
(C11)(удалён в C23) | вспомогательный макрос, раскрывается в ключевое слово _Alignof (макрос ключевого слова) |
|
__alignas_is_defined
(C11)(удалён в C23) | раскрывается в целочисленную константу 1 (макроконстанта) |
|
__alignof_is_defined
(C11)(удалён в C23) | раскрывается в целочисленную константу 1 (макроконстанта) |
Определено в заголовочном файле <stdnoreturn.h> |
|
|
noreturn
(C11)(устарел в C23) | вспомогательный макрос, раскрывается в _Noreturn (макрос ключевого слова) |
Целочисленные типы фиксированной ширины (начиная с C99)
Числовые пределы
Примечания
| Тип Программа может отменить определение макросов bool, |
(начиная с C99) (до C23) |
| Тип Если bool, | (начиная с C23) |
Пример
#include <stdalign.h>
#include <stdbool.h>
#include <stdio.h>
int main(void)
{
printf("%d %d %d\n", true && false, true || false, !false);
printf("%d %d\n", true ^ true, true + true);
printf("%zu\n", alignof(short));
}
Возможный вывод:
0 1 1 0 2 2
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.15 Выравнивание <stdalign.h> (с. TBD)
- 7.18 Логический тип и значения <stdbool.h> (с. TBD)
- 7.19 Общие определения <stddef.h> (с. TBD)
- 7.23 _Noreturn <stdnoreturn.h> (с. TBD)
- 7.31.9 Логический тип и значения <stdbool.h> (с. TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.15 Выравнивание <stdalign.h> (с. 196)
- 7.18 Логический тип и значения <stdbool.h> (с. 210)
- 7.19 Общие определения <stddef.h> (с. 211)
- 7.23 _Noreturn <stdnoreturn.h> (с. 263)
- 7.31.9 Логический тип и значения <stdbool.h> (с. 332)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.15 Выравнивание <stdalign.h> (с. 268)
- 7.18 Логический тип и значения <stdbool.h> (с. 287)
- 7.19 Общие определения <stddef.h> (с. 288)
- 7.23 _Noreturn <stdnoreturn.h> (с. 361)
- 7.31.9 Логический тип и значения <stdbool.h> (с. 456)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.18 Логический тип и значения <stdbool.h> (с. 253)
- 7.19 Общие определения <stddef.h> (с. 254)
- 7.26.7 Логический тип и значения <stdbool.h> (с. 401)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.1.5 Общие определения <stddef.h>
См. также
| Документация по C++ для библиотеки поддержки типов |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/types