【问题标题】:getting variables from master struct从主结构中获取变量
【发布时间】:2011-10-14 21:17:23
【问题描述】:

我正在尝试创建要在两台主机之间传输的不同消息。我遵循的程序结构是创建一个主结构,其中声明了要在不同消息中传递的所有变量。 然后我使用来自主结构的相同变量为不同的消息创建了不同的结构,我试图传递的值是通过指针。 下面是我正在尝试做的事情的大致轮廓。我不知道这是正确的方法还是有其他更好的方法。

我在编译时遇到的错误是: 1.表达式必须有一个常数值 2. 不允许不完整的类型

当我尝试创建消息结构的实例并传递主结构的指针时,两者都被指向。

请帮忙。

[代码]

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
                      };

[/代码]

【问题讨论】:

  • 这应该是什么语言?

标签: pointers struct


【解决方案1】:

我完全不知道你在那里说了什么,或者你想做什么。但是:

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;(布尔?)并将其他成员初始化为零。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多