エンディアンに依存しない C/C++ コードを書くには? 質問する

エンディアンに依存しない C/C++ コードを書くには? 質問する

グーグルで検索してみましたが、この質問に関する良い記事は見つかりませんでした。エンディアンに依存しないアプリを実装するときには、何に注意すればよいでしょうか?

ベストアンサー1

エンディアンを気にする必要があるのは、エンディアンに依存するバイナリデータ(つまり、テキストではない)を、同じエンディアンを持たない可能性のあるシステム間で転送する場合だけです。通常の解決策は、「ネットワークバイトオーダー「(別名ビッグエンディアン)を使用してデータを転送し、必要に応じてもう一方の端でバイトを入れ替えます。

ホストバイトオーダーからネットワークバイトオーダーに変換するには、htons(3)と を使用しますhtonl(3)。 逆に変換するには、ntohl(3)と を使用しますntohs(3)マニュアルページ必要な情報はすべてここにあります。64ビットデータの場合、この質問と回答役に立ちます。

おすすめ記事