Type support

From cppreference.com
< c

Basic types

Fundamental types defined by the language

Additional basic types and convenience macros

Defined in header <stddef.h>
unsigned integer type returned by the sizeof operator
(typedef)
signed integer type returned when subtracting two pointers
(typedef)
implementation-defined null pointer constant
(macro constant)
a type with alignment requirement as great as any other scalar type
(typedef)
byte offset from the beginning of a struct type to specified member
(function macro)
Defined in header <stdbool.h>
bool
(C99)
convenience macro, expands to _Bool
(keyword macro)
true
(C99)
expands to integer constant 1 (until C23)((_Bool)+1u) (since C23)
(macro constant)
false
(C99)
expands to integer constant 0 (until C23)((_Bool)+0u) (since C23)
(macro constant)
__bool_true_false_are_defined
(C99)
expands to integer constant 1
(macro constant)
Defined in header <stdalign.h>
alignas
(C11)
convenience macro, expands to keyword _Alignas
(keyword macro)
alignof
(C11)
convenience macro, expands to keyword _Alignof
(keyword macro)
__alignas_is_defined
(C11)
expands to integer constant 1
(macro constant)
__alignof_is_defined
(C11)
expands to integer constant 1
(macro constant)
Defined in header <stdnoreturn.h>
noreturn
(C11)
convenience macro, expands to _Noreturn
(keyword macro)

Fixed width integer types (since C99)

Numeric limits

Notes

The type of true and false is int rather than _Bool.

(since C99)
(until C23)

A program may undefine and perhaps then redefine the macros bool, true and false. However, such ability is a deprecated feature.

(since C99)

Example

#include <stdio.h>
#include <stdbool.h>
#include <stdalign.h>
 
int main(void)
{
    printf("%d %d %d\n", true && false, true || false, !false);
    printf("%zu\n", alignof(char));
}

Output:

0 1 1
1

References

  • C17 standard (ISO/IEC 9899:2018):
  • 7.15 Alignment <stdalign.h> (p: 196)
  • 7.18 Boolean type and values <stdbool.h> (p: 210)
  • 7.19 Common definitions <stddef.h> (p: 211)
  • 7.23 _Noreturn <stdnoreturn.h> (p: 263)
  • 7.31.9 Boolean type and values <stdbool.h> (p: 332)
  • C11 standard (ISO/IEC 9899:2011):
  • 7.15 Alignment <stdalign.h> (p: 268)
  • 7.18 Boolean type and values <stdbool.h> (p: 287)
  • 7.19 Common definitions <stddef.h> (p: 288)
  • 7.23 _Noreturn <stdnoreturn.h> (p: 361)
  • 7.31.9 Boolean type and values <stdbool.h> (p: 456)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.18 Boolean type and values <stdbool.h> (p: 253)
  • 7.19 Common definitions <stddef.h> (p: 254)
  • 7.26.7 Boolean type and values <stdbool.h> (p: 401)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.1.5 Common definitions <stddef.h>

See also