bob*_*obo 3 c++ function-pointers
每次我看一个C函数指针,我的眼睛都会茫然.我看不懂.
从这里,这里有两个函数指针TYPEDEFS的例子:
typedef int (*AddFunc)(int,int);
typedef void (*FunctionFunc)();
Run Code Online (Sandbox Code Playgroud)
现在我习惯了这样的事情:
typedef vector<int> VectorOfInts ;
Run Code Online (Sandbox Code Playgroud)
我读到的是
typedef vector<int> /* as */ VectorOfInts ;
Run Code Online (Sandbox Code Playgroud)
但我无法阅读上面的2个typedef.包围和星号放置,这是不合逻辑的.
为什么*旁边的单词AddFunc ..?
当你理解它时,只需忽略typedef函数名称周围的括号和名称前面的星号.那你有int AddFunc(int,int);.
括号中的要点(*functionName)是具体*使用typedef的名称进行分组.的*,表明这是一个功能是必要的指针.
所以任何以ints为参数并返回int符合AddFunc"接口"的函数,如果你愿意的话.同样,任何不接受参数的函数返回void都可以用于a FunctionFunc.