我正在尝试使用多个成员初始化另一个结构中的结构。 假设我想要一个包含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;
但这不起作用。 我该怎么做?
(我已经搜索了有关此主题的其他帖子,但没有找到一个。也许我已经解决了错误的问题。)
谢谢!
答案 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 };
要初始化结构中的结构,我认为需要将它放入括号中(尽管这在您的示例中是正确的)...