package core:c

⌘K
Ctrl+K
or
/

    Types

    bool ¶

    bool :: builtin.bool

    char ¶

    char :: builtin.u8
     

    assuming -funsigned-char

    complex_double ¶

    complex_double :: builtin.complex128

    complex_float ¶

    complex_float :: builtin.complex64

    double ¶

    double :: builtin.f64

    float ¶

    float :: builtin.f32

    int ¶

    int :: builtin.i32

    int16_t ¶

    int16_t :: builtin.i16

    int32_t ¶

    int32_t :: builtin.i32

    int64_t ¶

    int64_t :: builtin.i64

    int8_t ¶

    int8_t :: builtin.i8
     

    7.20.1 Integer types

    int_fast16_t ¶

    int_fast16_t :: builtin.i32

    int_fast32_t ¶

    int_fast32_t :: builtin.i32

    int_fast64_t ¶

    int_fast64_t :: builtin.i64

    int_fast8_t ¶

    int_fast8_t :: builtin.i8

    int_least16_t ¶

    int_least16_t :: builtin.i16

    int_least32_t ¶

    int_least32_t :: builtin.i32

    int_least64_t ¶

    int_least64_t :: builtin.i64

    int_least8_t ¶

    int_least8_t :: builtin.i8
     

    These are all the same in multiple libc's for multiple architectures.

    intmax_t ¶

    intmax_t :: builtin.i64

    intptr_t ¶

    intptr_t :: builtin.int

    long ¶

    long :: builtin.i32 when (ODIN_OS == .Windows || size_of(builtin.rawptr) == 4) else builtin.i64

    longlong ¶

    longlong :: builtin.i64

    ptrdiff_t ¶

    ptrdiff_t :: distinct intptr_t
    Related Constants

    schar ¶

    schar :: builtin.i8

    short ¶

    short :: builtin.i16

    size_t ¶

    size_t :: builtin.uint

    ssize_t ¶

    ssize_t :: builtin.int

    uchar ¶

    uchar :: builtin.u8

    uint ¶

    uint :: builtin.u32

    uint16_t ¶

    uint16_t :: builtin.u16

    uint32_t ¶

    uint32_t :: builtin.u32

    uint64_t ¶

    uint64_t :: builtin.u64

    uint8_t ¶

    uint8_t :: builtin.u8

    uint_fast16_t ¶

    uint_fast16_t :: builtin.u32

    uint_fast32_t ¶

    uint_fast32_t :: builtin.u32

    uint_fast64_t ¶

    uint_fast64_t :: builtin.u64

    uint_fast8_t ¶

    uint_fast8_t :: builtin.u8

    uint_least16_t ¶

    uint_least16_t :: builtin.u16

    uint_least32_t ¶

    uint_least32_t :: builtin.u32

    uint_least64_t ¶

    uint_least64_t :: builtin.u64

    uint_least8_t ¶

    uint_least8_t :: builtin.u8

    uintmax_t ¶

    uintmax_t :: builtin.u64

    uintptr_t ¶

    uintptr_t :: builtin.uintptr

    ulong ¶

    ulong :: builtin.u32 when (ODIN_OS == .Windows || size_of(builtin.rawptr) == 4) else builtin.u64

    ulonglong ¶

    ulonglong :: builtin.u64

    ushort ¶

    ushort :: builtin.u16

    va_list ¶

    va_list :: struct #align (16) {
    	_: [4096]u8,
    }
     

    Since there are no types in C with an alignment larger than that of max_align_t, which cannot be larger than sizeof(long double) as any other exposed type wouldn't be valid C, the maximum alignment possible in a strictly conformant C implementation is 16 on the platforms we care about. The choice of 4096 bytes for storage of this type is more than enough on all relevant platforms.

    wchar_t ¶

    wchar_t :: builtin.u16 when (ODIN_OS == .Windows) else builtin.u32

    Constants

    CHAR_BIT ¶

    CHAR_BIT :: 8

    INT16_MAX ¶

    INT16_MAX: i32 : int(0x7fff)

    INT16_MIN ¶

    INT16_MIN: i32 : ~INT16_MAX

    INT32_MAX ¶

    INT32_MAX: i32 : int(0x7fffffff)

    INT32_MIN ¶

    INT32_MIN: i32 : ~INT32_MAX

    INT64_MAX ¶

    INT64_MAX: i64 : longlong(0x7fffffffffffffff)

    INT64_MIN ¶

    INT64_MIN: i64 : ~INT64_MAX

    INT8_MAX ¶

    INT8_MAX: i32 : int(0x7f)
     

    Copy C's rules for type promotion here by forcing the type on the literals.

    INT8_MIN ¶

    INT8_MIN: i32 : ~INT8_MAX

    NDEBUG ¶

    NDEBUG :: !ODIN_DEBUG

    NULL ¶

    NULL :: rawptr(uintptr(0))

    PTRDIFF_MAX ¶

    PTRDIFF_MAX: ptrdiff_t : max(ptrdiff_t)

    PTRDIFF_MIN ¶

    PTRDIFF_MIN: ptrdiff_t : min(ptrdiff_t)

    SIZE_MAX ¶

    SIZE_MAX: uint : max(size_t)

    UINT16_MAX ¶

    UINT16_MAX: i32 : int(0xffff)

    UINT32_MAX ¶

    UINT32_MAX: u32 : uint(0xffffffff)

    UINT64_MAX ¶

    UINT64_MAX: u64 : ulonglong(0xffffffffffffffff)

    UINT8_MAX ¶

    UINT8_MAX: i32 : int(0xff)

    WCHAR_MAX ¶

    WCHAR_MAX: u16 : max(wchar_t)

    WCHAR_MIN ¶

    WCHAR_MIN: u16 : min(wchar_t)

    Variables

    This section is empty.

    Procedures

    This section is empty.

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2024-04 (vendor "odin") Windows_amd64 @ 2024-04-24 21:08:59.083551100 +0000 UTC