J'essaie d'appeler une fonction nommée characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel)
qui renvoie un void
C'est le .h
de la fonction que j'essaie d'appeler:
struct SelectionneNonSelectionne;
void characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
void resetSelection(SDL_Surface *screen, struct SelectionneNonSelectionne);
Sur ma fonction principale, j'essaie de l'appeler comme suit:
characterSelection(screen, SelectionneNonSelectionne);
Quand je compile, j'ai le message:
error: expected primary-expression before ')' token
J'ai fait le includes
. Je suppose que j'interprète mal le deuxième argument, mon struct
. Mais je ne trouve pas pourquoi sur le net.
Avez-vous une idée de ce que j'ai fait de mal?
Vous devez créer une variable du type SelectionneNonSelectionne.
struct SelectionneNonSelectionne var;
Après cela, passez cette variable à la fonction comme
characterSelection(screen, var);
L'erreur est due à la transmission du nom de type SelectionneNonSelectionne.
Un appel de fonction doit être effectué avec des objets. Vous faites l'équivalent de ceci:
// function declaration/definition
void foo(int) {}
// function call
foo(int); // wat!??
c'est-à-dire passer un type où un objet est requis. Cela n’a aucun sens en C ou C++. Tu dois faire
int i = 42;
foo(i);
ou
foo(42);
Vous passez un type en tant qu'argument, pas un objet. Vous devez faire characterSelection(screen, test);
où test est de type SelectionneNonSelectionne
.