Я никогда раньше не видел грамматики в C ++, подобной этой:
typedef int (callback)(int);
что на самом деле это означает? Я просто обнаружил, что если я создаю оператор
callback a;
, это очень похожий эффект к объявлению прямой функции.
ниже - это код, который я написал
#include<cstdio>
int callbackfunc(int i)
{
printf("%d\n",i);
return i*i;
}
// you can also use typedef int (callback)(int) here!
typedef int (*callback)(int);
void func(callback hook)
{
hook(hook(3));
}
int main()
{
func(callbackfunc);
getchar();
return 0;
}
Вы можете использовать
typedef int (*callback)(int);//this is very common to use
в этом коде, но если мы изменим его на
typedef int (callback)(int); //I'm puzzled by this !
, это также даст тот же результат!
и я знаю, что typedef int (* callback) (int)
и typedef int (callback) (int)
- две совершенно разные вещи.