728x90
안녕하세요!
이번에는 C++에서 콜백 함수와 함수 포인터에 대해 알아보겠습니다.
콜백 함수는 한 함수가 다른 함수를 호출하고, 호출된 함수가 다시 원래의 함수로 돌아와 작업을 계속하는 것을 말합니다.
이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.
함수 포인터
- 함수 포인터는 함수의 주소를 저장하는 변수로서, 다른 함수를 가리키고 호출할 수 있는 기능을 제공합니다. 이를 이용하여 콜백 함수를 구현할 수 있습니다.
아래는 콜백 함수와 함수 포인터를 활용한 간단한 예제입니다.
#include <iostream>
// 콜백 함수 시그니처
typedef void (*CallbackFunction)(int);
// 콜백 함수
void MyCallback(int value)
{
std::cout << "Callback executed with value: " << value << std::endl;
}
// 함수 포인터를 매개변수로 받는 함수
void PerformOperation(int value, CallbackFunction callback)
{
// 작업 수행
int result = value * 2;
// 콜백 함수 호출
callback(result);
}
int main()
{
int input = 5;
// PerformOperation 함수 호출 시 MyCallback 함수를 콜백으로 전달
PerformOperation(input, MyCallback);
return 0;
}
- CallbackFunction은 콜백 함수의 시그니처를 정의하는 함수 포인터 타입입니다.
- MyCallback 함수는 콜백 함수로서, PerformOperation 함수 내에서 호출됩니다.
- PerformOperation 함수는 작업을 수행한 후, 콜백 함수를 호출하여 결과를 전달합니다.
실행 결과는 다음과 같습니다
Callback executed with value: 10
이번글에서는 콜백함수에 대해서 다뤄 보았습니다.
콜백 함수와 함수 포인터를 이용하면 다른 함수의 동작을 자유롭게 조정하고 제어할 수 있습니다.
이를 통해 이벤트 처리, 비동기 작업, 외부 라이브러리와의 상호작용 등 다양한 상황에서 유용하게 활용할 수 있습니다.
감사합니다!
728x90
'[C++] > 프로그래밍 기초' 카테고리의 다른 글
[C++] 프로그래밍 기초 : 재귀함수 (7) | 2023.06.07 |
---|---|
[C++] 프로그래밍 기초 : 깊은 복사와 얕은 복사 (34) | 2023.06.05 |
[C++] 프로그래밍 기초 : 코딩 컨벤션 (5) | 2023.06.05 |
[C++] 프로그래밍 기초 : 조건부 컴파일 (4) | 2023.06.05 |
[C++] 프로그래밍 기초 : 전처리기 (4) | 2023.06.03 |