• ベストアンサー

C言語の配列の扱い

次のような配列bufと変数dataを宣言して bufの中身をdataにコピーしたいのですが、 buf[0]のみで、buf[1]の値が入りません。 具体的には、buf[0]には16進数で0x3f、 buf[1]には0x3aが入っていて、 dataの値を0x3a3fにしたいのです。 教えてください。 ***************************** unsigned char buf[2]; unsigned short data; data = (unsigned short)*buf; *****************************

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

data = *(unsigned short*)buf; ではいかがでしょう。

peroncho
質問者

お礼

早速のご回答ありがとうございました。 無事解決して大変助かりました。<(_ _)>

その他の回答 (1)

noname#15691
noname#15691
回答No.2

CPUのエンディアンが違っても質問通りにしたいなら、 data = ((unsigned short)buf[1] << 8) | buf[0]; こうですかね。

peroncho
質問者

お礼

ご回答いただきありがとうございます。 参考にさせていただきます。

関連するQ&A