我宣布了2个结构:
typedef struct
{
int a;
int b;
}ma_Struct;
typedef struct
{
int x;
ma_Struct tab[2];
}maStruct_2;
目标是初始化maStruct_2的实例,所以我做的是:
int main()
{
ma_Struct elm1={0,1};
ma_Struct elm2={1,2};
ma_Struct tab_Elm[2]={elm1,elm2};
maStruct_2 maStruct_2_Instance={1,tab_Elm};
return 0;
}
但是我在初始化程序中得到了警告缺少括号,我尝试了这种语法
maStruct_2 maStruct_2_Instance={1,{tab_Elm}};
但会出现相同的警告。 你能帮我吗
答案 0 :(得分:1)
在C中,您不能使用另一个数组名称作为初始化程序来初始化数组。
因此错误与结构本身无关,也与范围或常量表达式无关。
修复你的代码:
maStruct_2 maStruct_2_Instance = {1, {elm1, elm2}};