C 应为结构或联合

C 应为结构或联合,c,pointers,C,Pointers,此代码导致预期的结构或联合出现错误: void doSomething(动画*anim){ anim->quad.x=anim.x*anim.frame; } anim.quad是一个带有以下声明的矩形 typedef结构矩形{ 浮动x; 浮动y; 浮动宽度; 浮动高度; }矩形; 动画的定义: typedef结构动画{ 内部框架; 国际框架; int x; int-y; 整数宽度; 内部高度; 纹理2D图像; 矩形四边形; 色彩; }动画; 确切错误消息: animate.c:44: e

此代码导致预期的结构或联合出现错误:

void doSomething(动画*anim){
anim->quad.x=anim.x*anim.frame;
}
anim.quad是一个带有以下声明的
矩形

typedef结构矩形{
浮动x;
浮动y;
浮动宽度;
浮动高度;
}矩形;
动画的定义

typedef结构动画{
内部框架;
国际框架;
int x;
int-y;
整数宽度;
内部高度;
纹理2D图像;
矩形四边形;
色彩;
}动画;
确切错误消息:

animate.c:44: error: struct or union expected

请注意,
anim
是指向
动画的指针,而不是诚实的
动画
对象。这意味着,如果要从
动画
指向的
动画
中选择字段,则需要使用
->
操作符,而不是
操作符。要修复错误,请更改

anim->quad.x = anim.x * anim.currFrame;
阅读

anim->quad.x = anim->x * anim->currFrame;

更一般地说,如果您发现自己收到此错误消息,请检查是否将
->

混为一谈
动画的定义是什么
?请包含正确的错误消息为了回答问题,我们需要您将
动画
作为指针。您不能将点与指针一起使用
anim.NONONO
(可能是
anim->OKOK
(*anim.OKOK
)@pmg哦,对不起。。。