typedef void (*funcptr)(void)的含義


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM