티스토리 뷰

함수 포인터란?

함수를 가리키는 포인터


장점

함수를 generic하게 사용할 수 있다.

단점

코드의 가독성을 떨어뜨릴 가능성이 있다.


문법

반환형 (*사용할 이름)(매개변수1, 매개변수2, ...);


예제

int add(int a, int b);


int main(){

    int (*func)(int,int);   // 함수 포인터

    int result;

    

    func = add;

    result = func(3,4);

    

    cout<<result<<endl;

    

    return 0;

}


int add(int a, int b){

    return a+b;

}


활용

cocos2d-x에서 CC_CALLBACK_N 매크로는 콜백함수의 함수 포인터를 매개변수로 받아서 사용한다.

그래서 사용자 함수를 콜백함수로 만들 수 있다.

하지만 콜백함수가 받아야하는 매개변수로 주체가 들어울지 안들어올지 모르기 때문에

CC_CALLBACK_N으로 자동으로 전달되는 매개변수의 수를 미리 지정해준다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함