본문 바로가기
▶ 프로그래밍 [Programming]/▷ C 언어 [C Language]

[C 언어] 함수 포인터를 이용한 콜백함수(callback function) 사용 예시 (example code)

by (๑′ᴗ‵๑) 2021. 11. 23.
반응형

 

 

안녕하세요,

 

오늘은 알아두면 유용한 callback 함수 사용 예시에 대해 포스팅 해보도록 하겠습니다.



콜백 함수란 무엇인가

프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.

(출처: 위키백과)

 

콜백 함수는 주로 특정 이벤트가 발생했을 때, 사용자가 원하는 기능을 수행하도록 하기 위해 사용합니다. 하지만 특정 이벤트가 아니더라도 함수 내에서 사용자가 원하는 기능을 수행하기 위해 사용하기도 합니다.

 

반응형

 

콜백 함수 사용 예시

 

아래는 C 언어로 작성한 콜백 함수 등록 및 사용 예시 코드입니다.

#include <stdio.h>

// callback function type

typedef void (*user_print)(void);

// setter for a callback function
void setPrintCallback(user_print);

// user-defined function
void userFunc(void);

// use a callback function
void useCallback(void);

// global variable for a callback function
user_print userCallbackFunc = NULL;

int main(void)
{
    // Before setting the callback function
    printf("Before setting the callback function\n");
    useCallback();

    // Setting the callback function
    setPrintCallback(userFunc);

    // After setting the callback function
    printf("After setting the callback function\n");
    useCallback();

    return 0;
}

// setter for callback function
void setPrintCallback(user_print fp)
{
    userCallbackFunc = fp;
}

// user function
void userFunc(void)
{
    printf("I'm a callback function\n\n");
}

// use callback function
void useCallback(void)
{
    if (userCallbackFunc) // check if a callback function has registered
    {
        userCallbackFunc();
    }
    else
    {
        printf("no callback function\n\n");
    }
}

 

결과

Before setting the callback function
no callback function

After setting the callback function
I'm a callback function

 

 

지금까지 함수 포인터를 이용한 콜백 함수 사용 예시였습니다.

 

읽어주셔서 감사합니다.

 

반응형

댓글