IS_LITTLE_ENDIAN

Table of Contents

IS_LITTLE_ENDIAN

Description

Compile-time endianness detection.

Success

Evaluates to 1 for little-endian systems, 0 for big-endian.

Failure

Function cannot fail - evaluated at compile time.

Usage example (Cross-references)

    ///
    /// TAGS: Endianness, Conversion, 16-bit
    #define FROM_BIG_ENDIAN2(x) (IS_LITTLE_ENDIAN() ? INVERT_ENDIANNESS2(x) : (x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 32-bit
    #define FROM_BIG_ENDIAN4(x) (IS_LITTLE_ENDIAN() ? INVERT_ENDIANNESS4(x) : (x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 64-bit
    #define FROM_BIG_ENDIAN8(x) (IS_LITTLE_ENDIAN() ? INVERT_ENDIANNESS8(x) : (x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 16-bit
    #define FROM_LITTLE_ENDIAN2(x) (IS_LITTLE_ENDIAN() ? (x) : INVERT_ENDIANNESS2(x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 32-bit
    #define FROM_LITTLE_ENDIAN4(x) (IS_LITTLE_ENDIAN() ? (x) : INVERT_ENDIANNESS4(x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 64-bit
    #define FROM_LITTLE_ENDIAN8(x) (IS_LITTLE_ENDIAN() ? (x) : INVERT_ENDIANNESS8(x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 16-bit
    #define TO_LITTLE_ENDIAN2(x) (IS_LITTLE_ENDIAN() ? (x) : INVERT_ENDIANNESS2(x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 32-bit
    #define TO_LITTLE_ENDIAN4(x) (IS_LITTLE_ENDIAN() ? (x) : INVERT_ENDIANNESS4(x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 64-bit
    #define TO_LITTLE_ENDIAN8(x) (IS_LITTLE_ENDIAN() ? (x) : INVERT_ENDIANNESS8(x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 16-bit
    #define TO_BIG_ENDIAN2(x) (IS_LITTLE_ENDIAN() ? INVERT_ENDIANNESS2(x) : (x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 32-bit
    #define TO_BIG_ENDIAN4(x) (IS_LITTLE_ENDIAN() ? INVERT_ENDIANNESS4(x) : (x))
    
    ///
    ///
    /// TAGS: Endianness, Conversion, 64-bit
    #define TO_BIG_ENDIAN8(x) (IS_LITTLE_ENDIAN() ? INVERT_ENDIANNESS8(x) : (x))
    
    ///
    // if native endianness provided, then deduce endianness and set correspondingly
    if (fmt_info->endian == ENDIAN_NATIVE) {
    fmt_info->endian = IS_LITTLE_ENDIAN() ? ENDIAN_LITTLE : ENDIAN_BIG;
    }
    // if native endianness provided, then deduce endianness and set correspondingly
    if (fmt_info->endian == ENDIAN_NATIVE) {
    fmt_info->endian = IS_LITTLE_ENDIAN() ? ENDIAN_LITTLE : ENDIAN_BIG;
    }
    // if native endianness provided, then deduce endianness and set correspondingly
    if (fmt_info->endian == ENDIAN_NATIVE) {
    fmt_info->endian = IS_LITTLE_ENDIAN() ? ENDIAN_LITTLE : ENDIAN_BIG;
    }
    // Resolve native endianness if specified.
    if (fmt_info->endian == ENDIAN_NATIVE) {
    fmt_info->endian = IS_LITTLE_ENDIAN() ? ENDIAN_LITTLE : ENDIAN_BIG;
    }
    // Resolve native endianness if specified.
    if (fmt_info->endian == ENDIAN_NATIVE) {
    fmt_info->endian = IS_LITTLE_ENDIAN() ? ENDIAN_LITTLE : ENDIAN_BIG;
    }
    // Resolve native endianness if specified.
    if (fmt_info->endian == ENDIAN_NATIVE) {
    fmt_info->endian = IS_LITTLE_ENDIAN() ? ENDIAN_LITTLE : ENDIAN_BIG;
    }

Share :

Related Posts

INVERT_ENDIANNESS4

INVERT_ENDIANNESS4 Description Inverts endianness of 32-bit (4-byte) value.

Read More

INVERT_ENDIANNESS2

INVERT_ENDIANNESS2 Description Inverts endianness of 16-bit (2-byte) value.

Read More

INVERT_ENDIANNESS8

INVERT_ENDIANNESS8 Description Inverts endianness of 64-bit (8-byte) value.

Read More