にビットフィールドにint型をパッキング:私はASMは、単純にそうように見える、C++にASMからいくつかのコードを変換していますC++
mov dword ptr miscStruct, eax
のように構造体に見える:
struct miscStruct_s {
uLong brandID : 8,
chunks : 8,
//etc
} miscStruct;
がありますC + +で構造体を埋めるための簡単な1-2行の方法? は、これまで私が使用しています:罰金と、すべての作品が、私はこれらのビットフィールドの構造体のいくつかの9-10を入力する必要があり、そのうちのいくつかは、30個の奇数フィールドを持っている
miscStruct.brandID = Info[0] & 0xff; //Info[0] has the same data as eax in the ASM sample.
miscStruct.chunks = ((Info[0] >> 8) & 0xff);
を。だから、このようにして10行のコードを100+にすることは、明らかにそれほど大きくはありません。
C++でASMを複製するにはシンプルでクリーンな方法がありますか?
私はもちろん "miscStruct = CPUInfo [0];"しかし、C++はあいにくそれを好きではありません。 :(
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int'
..And私は、構造体を編集することはできません。
私が使用して終了: '* reinterpret_castは(&miscStructを)=情報[0];' –
Riley