Я конвертирую некоторый код из ASM в C ++, ASM просто выглядит так:
mov dword ptr miscStruct, eax
Структура выглядит так:
struct miscStruct_s {
uLong brandID : 8,
chunks : 8,
//etc
} miscStruct;
Есть ли простойдвухстрочный способ заполнить структуру в C ++?До сих пор я использую:
miscStruct.brandID = Info[0] & 0xff; //Info[0] has the same data as eax in the ASM sample.
miscStruct.chunks = ((Info[0] >> 8) & 0xff);
Это прекрасно работает и все, но я должен заполнить около 9-10 из этих структур битовых полей, некоторые из них имеют 30 нечетных полей.Таким образом, выполнение этого способа в конечном итоге превращает 10 строк кода в 100+, что, очевидно, не так уж и здорово.
Так есть ли простой, чистый способ репликации ASM в C ++?
Iконечно пробовал "miscStruct = CPUInfo [0];"но C ++ это не нравится, к сожалению.: (
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'int'
.. И я не могу редактировать структуру .