Я хочу создать 64-битную структуру данных, в которой каждый бит (ы) должен содержать значение.для этого я создал структуру следующим образом.(это относится к протоколу J1939 и ControlApplication NAME на всякий случай)
typedef struct CA_NAME {
unsigned IdentityNumber : 21; // 21 bits Byte 1.1 to 3.5
unsigned ManufactorerCode : 11; // 11 bits Byte 3.6 to 4.8
unsigned ECUInstance : 3; // 3 bits Byte 5.1 to 5.3
unsigned functionInstance : 5; // 5 bits Byte 5.4 to 5.8
unsigned Function : 8; // 8 bits Byte 6
unsigned Reserved : 1; // 1 bit Byte 7.1
unsigned VehicleSystem : 7; // 7 bits Byte 7.2 to 7.8
unsigned VehicleSystemInstance : 4; // 4 bits Byte 8.1 to 8.4
unsigned IndustryGroup : 3; // 3 bits Byte 8.5 to 8.7
unsigned ArbitraryAddressCapable : 1; // 1 bit Byte 8.8
} CA_NAME; /*64Bit NAME*/
теперь я хочу инициализировать экземпляр объекта CA_NAME
CA_NAME j1939 = {};
void Create_CA_NAME() {
j1939.IdentityNumber = 0xFE0D32;
j1939.ManufactorerCode = 0x57;
....
}
Здесь я получаю ошибку анализа в реальном времени (я полагаю из ReSharper), что (то есть для первого назначения) ![enter image description here](https://i.stack.imgur.com/8oONN.png)
Как правильно инициализировать экземпляр структуры?