異なるビット サイズ (8 ビット フィールド、次に 4 ビット フィールド、次に 9 ビット フィールド...) のデータを含むバッファがあります。
私はそれを読む必要があります。バイトレベルではなくビットレベルでポインターを使用して読み取ることができるライブラリがあれば、それは素晴らしいことです。
バッファを構造体にコピーすることはオプションではありません。調査した後、#pragma pack()
または同様のものを使用する必要があり、移植性がないためです。
何か案が?
編集:私の問題の大きさを例で説明しようとします:
field1: 8 bits --> ok, get first byte
field2: 6 bits --> ok, second byte, and a mask
field3: 4 bits --> gets harder, i have to get 2 bytes, apply 2 different masks, and compose
field4
...
field 15: 9 bits ---> No idea of how to do it with a loop to avoid writing manually every single case
そして、私が考えることができる唯一の解決策は、構造体にコピーするpragma pack
ことです。しかし、以前の質問で、移植性のために、それは良い解決策ではないと言われました。しかし、それが私を救うなら、私は喜んで別の意見を聞きます.