この関数がエンディアンを決定するかどうか不思議です。AシステムがC言語を使用してBig EndianまたはLittle Endianを使用するかどうかを調べる
テストsomeIntがリトルエンディアンで格納されている場合、テストは1に等しいビットマスクです。
ビットマスクでは、0x1000はマシンのエンディアンスタイルに一致するように変換されるか、または「定数」になりますか?
#include <stdio.h>
int isBigEndian(){
int someInt =0x0001;
if(someInt & 0x0100 == 1)
return 1;
else
return 0;
}
int main(){
int returnVal = isBigEndian();
printf("return val is %d", returnVal);
}
システムコールやその他のAPIが必要です。あなたはどのプラットフォームをターゲットにしていますか? –
ランタイム機能は必要ありません。これはコンパイル時に知られているものです。 –