在结构中初始化结构

时间:2013-12-29 20:42:29

标签: c++ c struct

我正在尝试使用多个成员初始化另一个结构中的结构。 假设我想要一个包含2个int成员的结构,那么我可以使用以下内容:

firstStruct struct1 = { 5 , 7 };

但是我想要初始化相同的结构,但这次它是另一个结构的成员:

(secondStruct成员是char和firstStruct)

secondStruct struct2 = { 'A' , { 6 , 8 } };

Stucts:

typedef struct firstStruct 
{
    int a;
    int b;  
} firstStruct;

typedef struct secondStruct
{
    firstStruct a;
    char b;
} secondStruct;

但这不起作用。 我该怎么做?

(我已经搜索了有关此主题的其他帖子,但没有找到一个。也许我已经解决了错误的问题。)

谢谢!

4 个答案:

答案 0 :(得分:1)

使用

secondStruct struct2 = {{ 6 , 8} , 'A'};

订单很重要。

答案 1 :(得分:0)

以下为我工作......

struct firstStruct {int a, b;};

firstStruct struct1 = { 5 , 7 };

struct secondStruct {char a; firstStruct b;};

secondStruct struct2 = { 'A' , { 6 , 8 } };

答案 2 :(得分:0)

您错误地订购了初始化。使用结构,您需要在正确的位置初始化每个成员。你在char之前声明了firstStruct,所以你需要在char {{5,7},' A'}之前初始化它。

答案 3 :(得分:0)

通常它应该像你写的一样工作。我能看到的唯一问题是你必须满足变量的顺序......

struct firstStruct 
{
    int a;
    int b;  
};

struct secondStruct
{
    S1 a;
    char b;
};

secondstruct = { { 1, 2 }, 3 };

要初始化结构中的结构,我认为需要将它放入括号中(尽管这在您的示例中是正确的)...