Spec-Zone.ru › C

Поддержка типов

См. также обзор системы типов и типы арифметических данных, определённые языком.

Основные типы

Дополнительные основные типы и удобные макросы

Определено в заголовке <stddef.h>
size_t
тип беззнакового целого числа, возвращаемый оператором sizeof
(typedef)
ptrdiff_t
тип знакового целого числа, возвращаемый при вычитании двух указателей
(typedef)
nullptr_t
(C23)
тип предопределённой константы нулевого указателя nullptr
(typedef)
NULL
константа нулевого указателя, определяемая реализацией
(макроконстанта)
max_align_t
(C11)
тип с требованием выравнивания, как у любого другого скалярного типа
(typedef)
offsetof
смещение в байтах от начала структуры к указанному члену
(функциональный макрос)
Определено в заголовке <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)

Численные пределы

Примечания

Тип true и false — int, а не _Bool.

Программа может сделать макросы bool, true и false неопределёнными, а затем, возможно, переопределить их. Однако такая возможность является устаревшей функцией.

(с C99)
(до C23)

Тип true и false — bool. Неопределено, будут ли какие-либо из bool, _Bool, true, или false реализованы как предопределённые макросы.

Если bool, true, или false (но не _Bool) определены как предопределённые макросы, программа может сделать их неопределёнными и, возможно, переопределить их.

(с 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API