bit-fields

    5

    1答えて

    は、次のことを考えてみましょう: class A { public: int gate_type : 4; bool storage_elem : 1; uint8_t privilege : 2; bool present : 1; } __attribute__((packed)); class B { public: struct

    10

    2答えて

    C++ 11のセクション9.6/3は、「非const参照はビットフィールドにバインドされてはなりません。この禁止の背後にある動機は何ですか? 私は、ビットフィールドへの参照を直接バインドすることはできないことを理解します。しかし、このような宣言をすると、 struct IPv4Header { std::uint32_t version:4, // assumes the IPv4

    2

    1答えて

    #include<stdio.h> int main() { struct byte { int one:1; }; struct byte var = {1}; // statement A printf("%d", var.one); return 0; } ここで、私は整数変数 'one'のビットメモリを1に

    6

    1答えて

    私はビットフィールドとして扱うことができるマイクロコントローラの製造元が提供するレジスタ定義を持っています。 #define SCU_WDTSCON0 (*(SCU_WDTSCON0_type *) 0xf00360f0u) ビットフィールドの定義は次のようになります:レジスタは、次のように定義されて typedef volatile union { unsigned U; int I;

    10

    1答えて

    C/C++ビットフィールドは、ハードウェアドライバとバイナリネットワーク転送で多くのアプリケーションを使用しているようです。 しかし、実際のバイナリレイアウトはC99規格のこの引用文に見られるように、実装固有のものであるため、広く使われるようには思われず、一般的には推奨されません6.7.2.1.10 - "構造体および共用体指定子"。 実装では、ビットフィールドを保持するのに十分な大きさのアドレス

    7

    1答えて

    C++ 14まで、intと宣言された構造体のビットフィールドは、まだ実装されている解釈であるsignedまたはunsignedのいずれかと解釈されていました。参考:http://en.cppreference.com/w/cpp/language/bit_field。 これはC++ 14の場合でもそうですか?つまり、以下のコードは意図的に動作することが保証されていますか? #include <io

    6

    1答えて

    私は、64ビット長intをいくつかのビットフィールドにパックしています。私は2番目と3番目のバイトに格納された16ビット符号付きintを取って、それを32ビット値に加算する必要があります。 u32 Function(s32 value , u64 bitfield) { return value + (s16) (bitfield >> 8) } が、私はそれが32ビット符号付き

    7

    3答えて

    #include <stdint.h> #include <stdio.h> typedef union { uint64_t u[2]; struct { uint64_t a:30; uint64_t b:30; uint64_t c:30; uint64_t d:30; uint64_t e:8;

    1

    2答えて

    パケットにデータをパックしようとしています。このパケットは64ビットでなければなりません。私はこれを持っています: typedef union { uint64_t raw; struct { unsigned int magic : 8; unsigned int parity : 1; unsigned int stype : 8;

    0

    1答えて

    下記のビットフィールドを宣言しました。 struct { volatile uint8_t screenflag:1; volatile uint8_t logoflag:1; volatile uint8_t oledflag:1; volatile uint8_t animationflag:1; volatile uint8_t clockd