fun a;//等價於void (*a)(); 這樣聲明起來就方便多了 void (*a)();表示a是個指針,指向一個不帶參數、返回值為空的函數
定義一個函數指針類型。 比如你有三個函數: void hello(void) { printf("你好!"); } void bye(void) { printf("再見!"); } void ok(void) { printf("好的!"); } typdef void (*funcptr)(void); 這樣就構造了一個通用的函數 你用的時候可以這樣: void speak(int id) { funcptr words[3] = {&hello, &bye, &ok}; funcptr fun = words[id]; (*fun)(); } 這樣的話,如果speak(0)就會顯示“你好!” speak(1)就會顯示“再見!” speak(2)就會顯示“好的!” 用於處理參數和返回值的形式都一樣,但是功能不確定的一組函數,可以使用函數指針。 比如算術運算符,加、減、乘、除,都可以用typedef int (*calc)(int,int)代表,等等
傳送門:typedef void (*funcptr)(void)的含義 - not_give_up_的博客 - CSDN博客 https://blog.csdn.net/not_give_up_/article/details/80800621
ref:C基礎--關於typedef的用法總結 - aaronGao - 博客園 https://www.cnblogs.com/aaronLinux/p/5769167.html