2012-08-02 2 views
0

다음의 내용과 사용법을 잘 모르시겠습니까? 들으함수 포인터를 정의하는 데 도움이 필요합니까?

class A; 
typedef void (*CALLBACK)(A*, void*); 
+3

정확하게 이해하지 못하는 부분은 무엇입니까? 이것은'void'를 리턴하고'A *'와'void * '매개 변수를 취하는 함수에 대한 포인터입니다. – Tudor

답변

1

그것은 void를 반환하고 A* 및 파라미터로서 void*를 취하는 함수로 함수 포인터 타입을 정의 CALLBACK 타입 정의된다.

typedef void (*CALLBACK)(A*, void*); 
void cb(A*, void*); 
CALLBACK handler = cb; 
... 
A* obj = new A(); 
some_type data; 
handler(obj, &data); 
1

당신은 void를 반환하고 void * 다음에 A *를받는 함수에 대한 포인터를 정의하고 있습니다. 따라서 당신은이 기능 void를 반환하고 A*void* 매개 변수를 복용에 대한 포인터입니다

void f(A*, void*); 
CALLBACK cbk = f; 
// ... 
A* a; 
void *p; 
cbk(a, p); 
1

할 수 있습니다. 예 :

void foo(A* a, void* v) 
{ 
    ... 
} 

... 

CALLBACK c = foo; 
관련 문제