본문 바로가기

Cpp

콜백 함수

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

이를 콜백 함수라고 하며, 프로그래밍에서는 인수로 함수 포인터를 받아서 사용할 수 있는데 이때 함수 포인터가 가리키는 함수가 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문 없이 가독성과 생산성을 높일 수 있다.

'Cpp' 카테고리의 다른 글

클래스의 기본 메소드 6가지 정리  (0) 2024.04.02
템플릿(template)  (0) 2023.06.20
허상 포인터(댕글링 포인터)  (0) 2023.06.19
L-value, R-value  (0) 2023.06.19
스마트 포인터  (0) 2023.06.13