//Program to understand Nested structs in C
#include <stdio.h>
typedef union test {
float tet;
struct {
int bite;
} p;
} U_test;
//union test U_test;
struct U_test.p = {.bite=150};
int main()
{
printf("%dn", U_test.p.bite);
U_test.tet = 0.0;
printf("%d", U_test.p.bite);
return 0;
}
这是我一直在下面看到的错误代码。不确定我在这里做错了什么,或者我打错了什么?请建议。提前谢谢。
error: expected identifier or ‘(’ before ‘.’ token
struct U_test.p = {.bite=150};
struct U_test.p = {.bite=150};
创建已定义的联合类型变量的语法不正确。应该是:
U_test u_test = { .p.bite = 150 };
修改后,main
中当前为U_test
的所有引用都需要更改为u_test
。
下面是修改后的完整程序:
#include <stdio.h>
typedef union test{
float tet;
struct{
int bite;
}p;
}U_test;
//union test U_test;
U_test u_test = { .p.bite=150 };
int main()
{
printf("%dn", u_test.p.bite);
u_test.tet = 0.0;
printf("%d", u_test.p.bite);
return 0;
}