2015-02-01 6 views
5

Я пытаюсь вызвать функцию с именем characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel), который возвращает voidошибка: ожидается, первичное выражение, прежде чем «)» знак (C)

Это .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'.) – juanchopanza

+0

Я попытался удалить аргумент 'SelectionneNonSelectionne', у меня, очевидно, есть сообщение об ошибке слишком мало аргументов, например:' error: too few arguments to function 'void characterSelection (SDL_Surface *, SelectionneNonSelectionne) "' Что я могу сделать, если мне нужно позвонить, я не могу позвонить? – Flo

+0

Когда прохождение объекта стало удалять параметр? – juanchopanza

ответ

9

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

struct SelectionneNonSelectionne var; 

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

characterSelection(screen, var); 

вызвана ошибка, поскольку вы передаете имя типа SelectionneNonSelectionne

1

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

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

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

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

int i = 42; 
foo(i); 

или

foo(42); 
2

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

+0

Я постараюсь применить это к своему коду, я очень незнакомый с C. Спасибо – Flo

+0

@Flo Это именно то, что я сказал вам в своем ответе. – juanchopanza

+0

Да, я благодарю вас за ваш ответ. – Flo

Смежные вопросы