#include <iostream>
typedef char (*callback)(int *data);
typedef char (callback2)(int *data);
typedef char callback3(int *data);
char fun_a(int *d)
{
if (*d == 10)
return 'A';
else
return 'B';
}
int main()
{
int num = 10;
callback cb_1_a;
cb_1_a = fun_a;
std::cout << cb_1_a(&num) << std::endl;
callback cb_1_b;
cb_1_b = &fun_a;
std::cout << cb_1_b(&num) << std::endl;
callback cb_1_c;
cb_1_c = &fun_a;
std::cout << (*cb_1_c)(&num) << std::endl;
/*
callback2 cb2;
cb2 = fun_a; // wrong
callback3 cb3;
cb3 = fun_a; // wrong
*/
return 0;
}
C++ compiler doesn't complain about the typedef of callback2
and callback3
.
Question> What do typedef char (callback2)(int *data)
and typedef char (callback3)(int *data)
mean? Is there a use case where I can apply them?