以下代码为我提供了编译错误" incompatible types at assignment
"
文件1:
struct x{
int a;
int b;
int c;
};
文件2:
static struct x d;
void copyStructVal(){
d-> a = 1;
d-> b = 2;
d-> c = 3;
}
x getStruct(){
copyStructVal();
return d;
}
文件3:
static struct x e;
void copy(){
e = getStruct();
}
我已经搜索过这个并且无法找到答案。我可以使用指针吗? (我是C的业余爱好者)
答案 0 :(得分:4)
在C中,您需要在结构名称后面写struct
,除非您typedef
。换句话说:
x getStruct(){
必须:
struct x getStruct(){
由于您在其余代码中编写了它,我想这是一个错字。
除此之外,您必须修复这3行,因为d
不是指针:
d-> a = 1;
d-> b = 2;
d-> c = 3;
他们应该是:
d.a = 1;
d.b = 2;
d.c = 3;