2015-02-01 3 views
5

나는이 내가 호출 할 함수의 .hvoid오류 : 토큰 ')'전에 예상되는 주요 표현 (C)

을 반환 characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel)라는 이름의 함수를 호출하는 것을 시도하고있다 :

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 miscall 가정합니다. 하지만, 그물에 왜 찾을 수 없습니다.

내가 뭘 잘못했는지 알아?

+2

당신은 함수에 객체를 전달해야 유형 이름 SelectionneNonSelectionne을 전달하기 때문에 오류가 발생

characterSelection(screen, var); 

같은 함수에 해당 변수를 전달합니다. 당신은 타입 ('SelectionneNonSelectionne')을 전달하려고 시도하는 것 같아요. – juanchopanza

+0

'SelectionneNonSelectionne'인수를 제거하려고했습니다. 분명히 오류 메시지가 너무 적습니다. 'error : 함수가 너무 적습니다.'void characterSelection (SDL_Surface *, SelectionneNonSelectionne) "'내가 할 수있는 일 내가 전화 할 수없는 것을 불러야한다면? – Flo

+0

언제 개체를 전달하면 매개 변수가 제거 되었습니까? – juanchopanza

답변

9

SelectionneNonSelectionne 유형의 변수를 만들어야합니다. 그 후

struct SelectionneNonSelectionne var; 

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

관련 문제