名前空間
変種
操作

__STDC_ENDIAN_LITTLE__, __STDC_ENDIAN_BIG__, __STDC_ENDIAN_NATIVE__

From cppreference.com
< c‎ | numeric
ヘッダー <stdbit.h> で定義されています。
#define __STDC_ENDIAN_LITTLE__ /* 実装定義 */
(1) (C23以降)
#define __STDC_ENDIAN_BIG__    /* 実装定義 */
(2) (C23以降)
#define __STDC_ENDIAN_NATIVE__ /* 実装定義 */
(3) (C23以降)

すべてのスカラー型エンディアンを示します。

  • すべてのスカラー型がリトルエンディアンの場合、__STDC_ENDIAN_NATIVE____STDC_ENDIAN_LITTLE__ と等しくなります。
  • すべてのスカラー型がビッグエンディアンの場合、__STDC_ENDIAN_NATIVE____STDC_ENDIAN_BIG__ と等しくなります。
  • プラットフォームがリトルエンディアンでもビッグエンディアンでもない場合、__STDC_ENDIAN_NATIVE____STDC_ENDIAN_BIG__ とも __STDC_ENDIAN_LITTLE__ とも等しくありません。
  • __STDC_ENDIAN_BIG__ および __STDC_ENDIAN_LITTLE__ の整数定数式の値は等しくありません。

[編集]

#include <stdbit.h>
#include <stdio.h>
 
int main()
{
    switch(__STDC_ENDIAN_NATIVE__)
    {
        case __STDC_ENDIAN_LITTLE__:
            printf("__STDC_ENDIAN_LITTLE__\n");
            break;
        case __STDC_ENDIAN_BIG__:
            printf("__STDC_ENDIAN_BIG__\n");
            break;
        default:
            printf("mixed-endian\n");
    }
    return __STDC_ENDIAN_NATIVE__;
}

実行結果の例

mixed-endian

[編集] 関連項目

English 日本語 中文(简体) 中文(繁體)