私はバイナリファイルをデコードするためのCアプリケーションを作成しています。私は自分のチャンクのサイズを確認する必要があります。 ...cでハードコーディングするのに最適な方法
を私は最大のコンパイラまたは/およびアーキテクチャに依存している間のみ、最小サイズが記載されていることを理解ドキュメントを読むので、私は何かのように行うことができます:***擬似コード
unsigned char byte;
if((byte = ~0) > 0xff){
typedef (unsigned char & 0xff) byte; /* I know.. ;P */
}else{
typedef unsigned char byte;
}
は私がすべきunsigned char
を使用するたびにビットマスクを適用するだけですか、サイズがわからないタイプにハードコードする別の方法がありますか?
PS:これは私のために重要である理由は、私はシフトの充てるやっされようとしているので.. ありがとう;)
C99コンパイラ(または拡張子の付いたC89コンパイラ)と固定幅タイプ 'uint8_t'、' int16_t'などを使用します。固定幅タイプを定義するコンパイラが見つからない場合あなたのマシン。毎回ビットマスクを適用することが唯一の解決策です。 – pmg
これはアンドロイドプラットフォーム用のライブラリです...そして、私はそれがコンパイラであるかどうか分かりません。あなたが提案するタイプについてのドキュメントを見つけようとします。ありがとう! – Psyclops
32ビット文字を持つプラットフォームで 'uint8_t'はどうなりますか? – CodesInChaos