エンディアンチェック
たまにはプログラム関係のことも。
今読んでいる本からコード抜粋&関数化。
boolean isLittleEndian( void ) { union ENDCHK{ unsigned long lVal; unsigned char cVal[4]; } endChk; endChk.cVal[0] = 0x00; endChk.cVal[1] = 0x01; endChk.cVal[2] = 0x00; endChk.cVal[3] = 0x00; return (256 == endChk.lVal); }
ターゲットのエンディアンをチェックできるコードだが…正直使い道は殆ど皆無かと。ただ、こういう風にして確認(あくまで確認)が出来るというだけの話だろうなぁ、と。
例えば実行時にこの関数の結果で処理を切り替える、などと考えるよりもとっととターゲットのアーキテクチャを調べてコンパイルスイッチでコードを組んだほうがはるかに経済的でしょうし。
まあ、面白いかなぁ、というだけデシタまる