回调函数通常是函数指针,它指向一个具有特定签名(参数列表和返回类型)的函数。
#include <iostream>
// 定义回调函数类型
//typedef关键字用于定义新的类型。
//void (*CallbackFunction)(int)指定了新类型的定义。在这里,(*CallbackFunction)表示这是一个函数指针类型,它指向一个函数,该函数接受一个整型参数(int)并且返回void,也就是没有返回值。
//因此,CallbackFunction被定义为一个函数指针类型,该类型可以指向任何具有与其匹配参数和返回类型的函数。
typedef void (*CallbackFunction)(int);
// 函数原型,它接受一个回调函数作为参数
void performOperation(int data, CallbackFunction callback)
{
std::cout << "Performing operation with data: " << data << std::endl;
// 模拟某个操作
// 这里可以是任何需要执行的代码
// 调用回调函数,传递结果
callback(data * 2);
}
// 实际的回调函数
void callbackFunction(int result)
{
std::cout << "Callback function called with result: " << result << std::endl;
}
//也可以是另外的函数
void callbackFunction1(int result)
{
std::cout << "Callback function called with result: " << result << std::endl;
}
int main()
{
// 调用performOperation,并传递回调函数
performOperation(5, callbackFunction);
performOperation(5, callbackFunction1);
return 0;
}