On this page
Type support
See also type system overview and arithmetic types defined by the language.
Basic types
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)  | 
     |
| 
       
        (C23)
         | 
      the type of the predefined null pointer constant nullptr (typedef)  | 
     
| implementation-defined null pointer constant  (macro constant)  | 
     |
| 
       
        (C11)
         | 
      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)(removed in C23)
         | 
      convenience macro, expands to _Bool (keyword macro)  | 
     
| 
        true
        
       (C99)(removed in C23)
         | 
      expands to integer constant 1 (macro constant)  | 
     
| 
        false
        
       (C99)(removed in C23)
         | 
      expands to integer constant 0 (macro constant)  | 
     
| 
        __bool_true_false_are_defined
        
       (C99)(deprecated in C23)
         | 
      expands to integer constant 1 (macro constant)  | 
     
Defined in header <stdalign.h> | 
     |
| 
        alignas
        
       (C11)(removed in C23)
         | 
      convenience macro, expands to keyword _Alignas (keyword macro)  | 
     
| 
        alignof
        
       (C11)(removed in C23)
         | 
      convenience macro, expands to keyword _Alignof (keyword macro)  | 
     
| 
        __alignas_is_defined
        
       (C11)(removed in C23)
         | 
      expands to integer constant 1 (macro constant)  | 
     
| 
        __alignof_is_defined
        
       (C11)(removed in C23)
         | 
      expands to integer constant 1 (macro constant)  | 
     
Defined in header <stdnoreturn.h> | 
     |
| 
        noreturn
        
       (C11)(deprecated in C23)
         | 
      convenience macro, expands to _Noreturn (keyword macro)  | 
     
Fixed width integer types (since C99)
Numeric limits
Notes
The type of  A program may undefine and perhaps then redefine the macros   | 
      (since C99) (until C23)  | 
     
The type of  If   | 
      (since C23) | 
Example
#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));
}
   Possible output:
0 1 1
0 2
2
   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
| C++ documentation for Type support library | 
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
 https://en.cppreference.com/w/c/types