我有一些C结构的作业麻烦...如果任何人都可以有所帮助。因为我不明白。根据现有的代码定义正确的结构
工作代码包含那些位(这是与具有含方向的头蛇游戏):
game_t *game = …;
game->snake.head->direction = …;
snake_info(game->snake)
snake_destroy(&(game->snake));
的原型(我显然不能改变):
void snake_info(snake_t const *snake);
void snake_destroy(snake_t *snake);
而且我试图建立的结构。
typedef struct game {
snake_t snake; // to match call to snake_destroy and direction assignation
// or
snake_t *snake; // to match call to snake_info
} game_t;
但我不能同时工作。
编辑:的struct
被称为snake
而它实际上是game
。 我是否错过了某些显而易见的东西,或者这些原型(或调用)有问题吗?
编辑2:
编译器误差与所述第一溶液snake_t snake
(在game
):
snake.c: In function ‘game_print’:
snake.c:244:5: erreur: incompatible type for argument 1 of ‘snake_info’
gamecore.c:20:6: note: expected ‘const struct snake_t *’ but argument is of type ‘snake_t’
编译器误差与第二溶液snake_t * snake`:
snake.c: In function ‘game_destroy’:
snake.c:205:5: attention : passing argument 1 of ‘snake_destroy’ from incompatible pointer type
gamecore.c:54:6: note: expected ‘struct snake_t *’ but argument is of type ‘struct snake_t **’
能否请您提供的编译器或您的错误消息(缩短)输出?你必须使用第二种形式,因为你使用的是'snake.head'而不是'snake-> head'。 – 2012-04-26 18:50:50
错误补充,谢谢你的帮助。 – greut 2012-04-26 19:06:15