我已经定义了这个结构:

typedef struct WHEATHER_STRUCT
{
   unsigned char packetID[1];
   unsigned char packetSize[2];
   unsigned char subPacketID[1];
   unsigned char subPacketOffset[2];
   ...
} wheather_struct;


如何通过属性名称初始化此结构(使用构造函数或new)访问?例如:

wheather_struct.packetID = 1;



  最后


我尝试过此解决方案,它对我有用,但是您认为这是一个不错的选择吗?

WHEATHER_STRUCT * wheather_struct = new WHEATHER_STRUCT();
*weather_struct->packetID = '1';


对于float属性:

wheather_struct->floatAttribute= 111.111

最佳答案

在C ++中,您可以使用new进行分配和初始化:

wheather_struct *p = new wheather_struct();


注意最后的括号-这是value initialization-用0填充内置类型的成员。

接着:

p->packetID[0] = 1;

关于c++ - (结构*)使用属性值名称进行初始化吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52521261/

10-13 08:54