정적 C 클래스 멤버 함수를 C 콜백 함수로 사용
C에서는 클래스 멤버 함수를 C 콜백 함수(멤버 함수가 다음과 같이 선언된 경우에만 해당) static.
설명:
비정적 멤버 함수에는 this 포인터에 해당하는 클래스 A* 유형의 암시적 첫 번째 매개 변수가 있습니다. 그러나 C 콜백 함수에는 일반적으로 이 첫 번째 매개변수가 없습니다. 클래스 멤버 함수를 콜백으로 등록하려면 암시적 this 포인터를 제거해야 합니다.
해결책:
멤버 함수를 정적으로 선언합니다. 이는 멤버 함수가 this 포인터에 액세스할 수 없음을 의미합니다.
class A { public: A(); ~A(); static int e(int *k, int *j); }; A::A() { register_with_library(e) } int A::e(int *k, int *e) { return 0; }
대체 접근 방식:
사용이 불가능하거나 바람직하지 않은 경우 정적 멤버 함수, 대체 접근 방식은 다음과 같습니다.
위 내용은 정적 C 클래스 멤버 함수를 C 콜백으로 어떻게 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!