Cpp

콜백 함수

__sapar 2023. 6. 19. 19:18

기본적인 함수들은 어느 때에 맞춰 불려진다. 그런데 때때로 어떠한 신호에 의해 정해놓지 않은 시기에 함수가 호출되는데,

이를 콜백 함수라고 하며, 프로그래밍에서는 인수로 함수 포인터를 받아서 사용할 수 있는데 이때 함수 포인터가 가리키는 함수가 callback 이다.

 

 

int Sum(int a, int b)
{
    return a+b;
}

int Cal(int a, int b)
{
    return a*b;
}


int Func(int a, int(*pf)(int,int))
{
    return pf(a,a+5);
}

int main()
{
   cout << Func(5, &Sum); // Sum() 을 콜백
   cout << Func(5, &Cal); // Cal() 을 콜백
   
}

콜백 함수의 장점은 특정 조건에 따라서 같은 코드(포인터 객체) 이지만 호출하는 함수를 다르게 할 수 있다.

 

런타임 중 변경이 가능하게 된다는 점이다.

 

상태머신을 만들 때에도 콜백을 사용하면 switch문과 if문 없이 가독성과 생산성을 높일 수 있다.