我正在尝试创建要在两台主机之间传输的不同消息。我遵循的程序结构是创建一个主结构,其中声明了在不同消息中传递的所有变量。 然后我使用master struct中的相同变量为不同的消息创建了不同的结构,我试图传递的值是通过指针。 以下是我想要做的大致概述。我不知道这是正确的方法,还是有另一种更好的方法。
我在编译时遇到的错误是: 1.表达式必须具有恒定值 2.不允许不完整类型
当我尝试创建消息结构的实例并传递master struct的指针时,两者都是指向的。
请帮忙。
[代码]
struct Master{
char Bulk_Charging_Complete : 1;
char Charging_Complete : 1;
short Vehicle_Energy_Capacity;
char Vehicle_RESS_SOC;
short Vehicle_Maximum_Power_Limit : 13;
short Vehicle_Maximum_Current_Limit: 13;
short Vehicle_Maximum_Voltage_Limit: 13;
short Charger_Maximum_Power_Limit: 13;
short Charger_Maximum_Current_Limit: 13;
short Charger_Maximum_Voltage_Limit: 14;
short Charge_Current_Request: 13;
} Power;
/* create a pointer of type Master struct and point to instance of that struct type,i.e Power */
struct Master *power_pointer = &Power;
// creating a structure of a message, the value to its variables will be fetched by pointer to the master structure
struct {
short var1 : 1;
char var2 : 4;
short var3 : 1;
short var4 : 4;
}EV_msg_01;
// creating a structure of a message, the value to its variables will be fetched by pointer to the master structure
struct {
short var1 : 1;
short var2 : 4;
short var3 : 1;
short var4 : 4;
}station_msg_01;
struct EV_msg EV_msg_01 = {
power_pointer->Vehicle_Energy_Capacity,power_pointer->Vehicle_RESS_SOC,power_pointer->Vehicle_Maximum_Power_Limit,power_pointer->Vehicle_Maximum_Current_Limit
};
struct station_msg_01 station_msg_01 = {
power_pointer->Charger_Maximum_Power_Limit, power_pointer->Charger_Maximum_Current_Limit,power_pointer->Charger_Maximum_Voltage_Limit,power_pointer->Charge_Current_Request
};
[/代码]
答案 0 :(得分:0)
我对你在那里所说的话,或者你想要做的事情都没有最模糊的想法。但是:
struct {
short var1 : 1;
char var2 : 4;
short var3 : 1;
short var4 : 4;
}EV_msg_01;
创建一个名为EV_msg_01
的匿名类型的变量。
struct EV_msg EV_msg_01 = {
EV_msg
未在任何地方定义,变量EV_msg_01
已经存在,它在第一部分中定义。
struct station_msg_01 station_msg_01 = {
station_msg_01
是一个已经声明的变量,而不是一个类型。并且您不能拥有与类型同名的变量。
EV_msg_01 = { power_pointer->Vehicle_Energy_Capacity, }
我不知道你的意图,但是该作业试图将Vehicle_Energy_Capacity
(简短)分配给short : 1;
(一个博尔?)并将零初始化为其他成员。