【发布时间】:2016-09-02 12:10:29
【问题描述】:
我正在尝试从 main 调用函数“玩游戏”,玩游戏的输入类型为“struct player”。但是,我收到错误:
game.h:18:17: note: expected ‘struct player *’ but argument is of type ‘struct player’
struct player * play_game(struct player * first, struct player * second);
reversi.c:47:4: error: incompatible type for argument 1 of ‘play_game’
*winner = play_game( first , second );
随着参数 2 的错误被抛出。
当我将参数类型切换为指针时,我得到:
reversi.c:47:12: error: incompatible types when assigning to type ‘struct player’ from type ‘struct player *’
*winner = play_game( first , second );
我环顾四周,但似乎没有太多关于它的内容,而且它通常与 .h 文件本身有关,而我几乎可以肯定该错误必须涉及以下行:“*winner = play_game ( 第一秒 );” (此处提供了其他行)
我也尝试过更改所有指针,即使如果它起作用了我会迷失方向,但除了在同一错误上得到变化之外,我什么也没得到。
我已将代码剪掉以进行发布,但它仍然会产生相同的错误。
#include <stdio.h>
#include <stdlib.h>
#define NAMELEN 20
struct player * play_game(struct player * first, struct player * second) ;
enum cell
{
BLANK, RED, BLUE
};
struct player
{
char name[NAMELEN + 1];
enum cell token;
unsigned score;
};
int main(void)
{
struct player first, second, *winner = NULL;
enter code here
*winner = play_game( first , second );
return EXIT_SUCCESS;
}
struct player * play_game(struct player * first, struct player * second)
{
return first;
}
提前感谢您提供的任何帮助。
【问题讨论】:
-
你知道事物和指向事物的指针的区别吗?
-
@immibis 不太好,我怀疑。我要回去看看他们。