Пространства имён
Варианты
Действия

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

Материал из cppreference.com
< c

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

Содержание

[править]Базовые типы

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

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