Ошибка: ожидаемое первичное выражение перед ')' токеном (C)

Я пытаюсь вызвать функцию с именем characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel), которая возвращает void

Это .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. Но я не могу найти, почему в сети.

У вас есть представление о том, что я сделал неправильно?

Ответ 1

Вы должны создать переменную типа SelectionneNonSelectionne.

struct SelectionneNonSelectionne var;

После этого передайте эту переменную функции, подобной

characterSelection(screen, var);

Ошибка вызвана тем, что вы передаете имя типа SelectionneNonSelectionne

Ответ 2

Вызов функции должен выполняться с объектами. Вы делаете эквивалент этого:

// function declaration/definition
void foo(int) {}

// function call
foo(int); // wat!??

то есть. передавая тип, где требуется объект. Это не имеет смысла в C или С++. Вам нужно делать

int i = 42;
foo(i);

или

foo(42);

Ответ 3

Вы передаете тип как аргумент, а не объект. Вам нужно сделать characterSelection(screen, test);, где тест имеет тип SelectionneNonSelectionne.

Ответ 4

ключи байтов = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, *, '#', A, B, C, D};