void
を返すcharacterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel)
という名前の関数を呼び出そうとしています。
これは .h
私が呼び出すしようとする関数の:
struct SelectionneNonSelectionne;
void characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
void resetSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
私のメイン関数では、次のように呼び出します:
characterSelection(screen, SelectionneNonSelectionne);
コンパイルすると、次のメッセージが表示されます。
error: expected primary-expression before ')' token
includes
を作成しました。私のstruct
という2番目の引数を誤って呼び出したと思います。しかし、私はネット上で理由を見つけることができません。
私が何を間違えたのか、ご存知ですか?
タイプSelectionneNonSelectionneの変数を作成する必要があります。
struct SelectionneNonSelectionne var;
その後、その変数を関数に渡します
characterSelection(screen, var);
タイプ名SelectionneNonSelectionneを渡すため、エラーが発生します。
関数呼び出しはオブジェクトで実行する必要があります。これと同等のことをしています:
// function declaration/definition
void foo(int) {}
// function call
foo(int); // wat!??
つまり、オブジェクトが必要な型を渡します。これは、CまたはC++では意味がありません。あなたがする必要があります
int i = 42;
foo(i);
または
foo(42);
オブジェクトではなく、引数として型を渡します。テストのタイプがSelectionneNonSelectionne
である場合、characterSelection(screen, test);
を実行する必要があります。