试图学习嵌套结构的概念,我写了一个简短的程序来理解,但我遇到了下面提到的错误

  • 本文关键字:程序 错误 遇到 结构 嵌套 学习 一个 c
  • 更新时间 :
  • 英文 :

//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;
}

相关内容

最新更新