CまたはC++では、それは、変数が持っているビットの数を制限するために明らかに可能です:ビット設定質問
私は、次の変数を持つクラスを持っている場合:
unsigned char A:1;
unsigned char B:3;
unsigned char C:1;
unsigned char D:3;
- 上記の技術は、実際には何と呼ばれますか?
- クラスのサイズが4バイト以上か、サイズが1バイトですか?
- 変数は、示されているように1(または3)ビットとして扱われますか、または「符号なしchar」ごとに1バイトとして扱われますか?
- ビットを中央のバイトに組み合わせることはできますか?したがって、たとえば:
。
unsigned char MainByte;
unsigned char A:1; //Can this be made to point at the first bit in MainByte?
unsigned char B:3; //Etc etc
unsigned char C:1;
unsigned char D:3;
- より深くこのトピックをカバー記事はありますか?
- 'A:1'がバイト全体のように扱われる場合、そのポイント/紫は何ですか?
その他の考慮事項(コンパイラの制限やその他の制限事項など)はお気軽にお問い合わせください。
ありがとうございます。
名前は私が尋ねるべきとし –
ビットフィールドです:あなたは、CまたはC++を使用していますか? C + +の場合は、非PODクラスでこれを使用していますか?私はC++がビットフィールドをPODの構造型に限定していると感じています。 –
C++。私はbtohを含めていますので、仕様の違いを知っています(また、適用可能なソリューションを広げるために)。それは私が簡単にかかわらず、オーバー変更できる構造体としてのみを使用することができればとはい、私は、(それが現時点では設計段階ですが)クラスでそれを使用しています。これは、GIF画像読み込みプログラム用です。 – SSight3