// // //虽然别人已经回答 我想通过我自己的方式回答一下 以提供不同于别人的解决问题的想法 // // typedef int(init_fnc_t) (void); 这个就是一个取别名的过程。 我们通常情况下会如下使用 typedef : typedef int MyInt; MyInt a; 这个时候我们的MyInt 就和int是一样的意思。 而对于函数的申明我们通常会这样申明: int InitFunction() (void); 此时表示申明了一个函数名为InitFunction的函数, 函数没有任何的形参,返回值类型为int型。 而对于 typedef int(init_fnc_t) (void); 就是对一个 int (void)类型的函数类型进行取别名init_fnc_t。 我们可以利用这个别名进行创建这个类型的函数对象。 init_fnc_t *MyFunction; 这里就是一个函数的指针。如果某个函数的类型和这个函数一样的,那么可以将这个函数的指针指向该函数。然后你就可以直接调用MyFunction(); 以下是例子 #include <stdio.h> int GetData(void) { return 101; } int main() { typedef int (init_fnc_t)(void); init_fnc_t *MyFunction; MyFunction = GetData; printf("%d",MyFunction()); return 0; } 这个时候打印出来的结果就是 101
#include <stdio.h> int GetData(void) { return 101; } int main() { typedef int (init_fnc_t)(void); init_fnc_t *MyFunction; MyFunction = GetData; printf("%d",MyFunction()); return 0; }
69,371
社区成员
243,082
社区内容
加载中
试试用AI创作助手写篇文章吧