Namespaces
Variants

Type support

From cppreference.net
< c

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

Содержание

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

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

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

Числовые ограничения

Примечания

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

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

(начиная с C99)
(до C23)

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

Если bool , true или false (но не _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++ для Библиотеки поддержки типов