Поддержка типов
См. также обзор системы типов и типы арифметических данных, определённые языком.
Основные типы
Дополнительные основные типы и удобные макросы
Определено в заголовке <stddef.h> |
|
|---|---|
тип беззнакового целого числа, возвращаемый оператором sizeof (typedef) |
|
| тип знакового целого числа, возвращаемый при вычитании двух указателей (typedef) |
|
|
(C23) | тип предопределённой константы нулевого указателя nullptr (typedef) |
| константа нулевого указателя, определяемая реализацией (макроконстанта) |
|
|
(C11) | тип с требованием выравнивания, как у любого другого скалярного типа (typedef) |
| смещение в байтах от начала структуры к указанному члену (функциональный макрос) |
|
Определено в заголовке <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)
Численные пределы
Примечания
| Тип Программа может сделать макросы |
(с C99) (до C23) |
| Тип Если | (с C23) |
Пример
#include <stdio.h>
#include <stdbool.h>
#include <stdalign.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
Ссылки
- Стандарт 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/w/c/types