2015-02-01 18 views
5

Tôi cố gắng để gọi một hàm có tên characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne sel) mà trả về một voidlỗi: dự kiến ​​ban đầu thể hiện trước ')' token (C)

Đây là .h của hàm tôi cố gắng gọi:

struct SelectionneNonSelectionne; 
void characterSelection(SDL_Surface *screen, struct SelectionneNonSelectionne); 
void resetSelection(SDL_Surface *screen, struct SelectionneNonSelectionne); 

Mở chức năng chính của tôi, tôi cố gắng gọi nó là như thế này:

characterSelection(screen, SelectionneNonSelectionne); 

Khi tôi biên dịch, tôi có thông điệp:

error: expected primary-expression before ')' token 

Tôi đã thực hiện includes. Tôi cho rằng tôi miscall đối số thứ hai, số struct của tôi. Nhưng, tôi không thể tìm thấy lý do tại sao trên mạng.

Bạn có ý tưởng gì về những gì tôi đã làm không?

+2

Bạn cần phải vượt qua các đối tượng hàm. Dường như bạn đang cố gắng vượt qua một loại ('SelectionneNonSelectionne'.) – juanchopanza

+0

Tôi đã cố gắng loại bỏ đối số 'SelectionneNonSelectionne', tôi rõ ràng có thông báo lỗi quá ít đối số, như sau:' lỗi: quá ít đối số để hoạt động "void characterSelection (SDL_Surface *, SelectionneNonSelectionne) "' Tôi có thể làm gì Nếu tôi phải gọi thứ gì đó mà tôi không thể gọi? – Flo

+0

Khi nào đi qua một đối tượng sẽ xóa một tham số? – juanchopanza

Trả lời

9

Bạn nên tạo một biến loại SelectionneNonSelectionne.

struct SelectionneNonSelectionne var; 

Sau đó vượt qua biến mà đến chức năng như

characterSelection(screen, var); 

Lỗi là do kể từ khi bạn đang đi qua các SelectionneNonSelectionne tên loại

1

Một cuộc gọi chức năng cần phải được thực hiện với các đối tượng. Bạn đang thực hiện tương đương với điều này:

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

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

tức là chuyển loại mà đối tượng được yêu cầu. Điều này không có ý nghĩa trong C hoặc C++. Bạn cần phải làm

int i = 42; 
foo(i); 

hoặc

foo(42); 
2

Bạn đang đi qua một kiểu như là một đối số, không phải là một đối tượng. Bạn cần làm characterSelection(screen, test); nơi thử nghiệm thuộc loại SelectionneNonSelectionne.

+0

Tôi sẽ cố gắng để áp dụng này vào mã của tôi, tôi rất không quen thuộc với C. Cảm ơn – Flo

+0

@ Flo Đây là chính xác những gì tôi đã nói với bạn trong câu trả lời của tôi. – juanchopanza

+0

có thực sự tôi cảm ơn bạn đã trả lời. – Flo

Các vấn đề liên quan