私は単純なゲームを書いていますが、最近、解決するのが難しくないように見える問題に遭遇しましたが、アイデアがありません。
ファイル blocks.c では、他の関数の中でも特に単純な関数を定義しました。
field block_get_field_coordinates(int x, int y)
{
field temp;
temp.x = floor( x / 65 ) * 65 + 15;
temp.y = floor( y / 65) * 65 + 15;
return temp;
}
field はファイル grid.h で宣言された構造体です
struct field
{
int x, y;
}f;
typedef struct field field;
そして、次のことを試したときのmain.cで:
f = block_get_field_coordinates(blocks[x][y].x4, blocks[x][x].y4);
f は 'field' で、エラーが発生しました:
incompatible types when assigning to type 'struct field' from type 'int'
ここで何が間違っていたのか本当にわかりません。blocks.c の他の関数は、エラーを発生させることなく動作します。
興味深いことに、構造体フィールドの宣言、関数 block_get_field_coordinates だけを別のファイルにコピーすると、機能しました。