Je convertir un code de ASM en C++, l'ASM ressemble tout simplement comme ceci:emballage un int dans un champ de bits en C++
mov dword ptr miscStruct, eax
struct ressemble:
struct miscStruct_s {
uLong brandID : 8,
chunks : 8,
//etc
} miscStruct;
est-il un moyen facile de deux lignes pour remplir la structure en C++? Jusqu'à présent, je me sers:
miscStruct.brandID = Info[0] & 0xff; //Info[0] has the same data as eax in the ASM sample.
miscStruct.chunks = ((Info[0] >> 8) & 0xff);
Cela fonctionne très bien et tout, mais je dois remplir une 9-10 de ces structs BITFIELD, certains d'entre eux ont 30 champs impairs. Le faire de cette façon finit par transformer 10 lignes de code en 100+ ce qui n'est évidemment pas si bien.
Y a-t-il une manière simple et propre de répliquer l'ASM en C++?
J'ai bien sûr essayé "miscStruct = CPUInfo [0];" mais C++ n'aime pas ça malheureusement. :(
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int'
..Et Je ne peux pas modifier le struct.
Je fini par utiliser: '* reinterpret_cast (& miscStruct) = Info [0];' –
Riley