2016-07-01 8 views

答えて

2

__xは特別な意味を持ちません。 ENDIAN_LE16は、ソースコードを変更せずにエンディアンを変更できる場所です。各ビルドターゲットは、そのターゲットに固有の異なるバージョンのgfpr.hを持つことができます。

リトルエンディアンマシン用にコンパイルする必要があります。したがって、ENDIAN_LE16は変更する必要はありません。その議論(__x)は変わりません。ビッグエンディアンのターゲット用にコンパイルする場合は、その引数のバイトをスワップするようにENDIAN_LE16が定義されます。ような何か:

#define ENDIAN_LE16(__x) ((((x) & 0xff) << 8) | (((x) >> 8) & 0xff)) 

そうすれば、あなたには、ターゲットのgfpr.hファイルを変更することで、あなたはあなたのソースコードを変更することなく、右の結果を得ます。

file you're probably looking at当たり編集ENDIAN_BE32私が上記示したものと同様のビットをtwiddles ENDIAN_RET32を呼び出します。

関連する問題