다음에C++ 함수 포인터 구문 나는 일반적으로 함수 포인터는 다음과 같이 선언 된 것을 알고
void calling_func(void (__stdcall * callback)(int)) { *callback(1); }
:
void __stdcall my_func(int i) {} // for assigning
void (__stdcall * my_ptr)(int) = &my_func;
지금 내가 그들의 인수로 함수 포인터를 가지고 여러 가지 기능을 가지고 헤더 파일에서 방금 이름을 삭제했습니다.
void calling_func(void (__stdcall *)(int));
및 voilá가 작동했으며 ... 잉킹 (inking) : 이것이 완전한 타입 선언이라면 일반 포인터 TYPE NAME = VALUE
구문을 사용할 수 없습니까?
나는 선언했습니다 :
(void (__stdcall *)(int)) callback = &my_func;
그리고 그것은 또한 컴파일! 왜 이것이 더 자주 사용되지 않습니까? 이 표기법에 결함이 있습니까? 나에게 그것은 함수 포인터의 사용을 매우 쉽게 해줄 것이라고 생각한다 ... typedef에서 또한 예를 들어 : 일반적으로 그것은 typedef OLDNAME NEWNAME
이다. 함수 포인터를 사용하면이 새로운 이름이 실제로는 중간에있다. 전체 표현. 함수 포인터를 반환하는 함수에 대한 표기는 ...
좋은 지점. 나는 그가 거기에서 무엇을하고 있는지를 알 수 없었다! –