1. 程式人生 > >函式指標作為某個函式的引數

函式指標作為某個函式的引數

   函式指標變數是一個變數,可以作為某個函式的引數來使用的。     一個例項: 設計一個 CallMyFun 函式,這個函式可以通過引數中的函式指標值不同來分別呼叫 MyFun1、MyFun2、MyFun3 這三個函式(注:這三個函式的定義格式應相同)。 

點選(此處)摺疊或開啟

  1. #include<stdio.h>
  2. void MyFun1(int x); 
  3. void MyFun2(int x); 
  4. void MyFun3(int x); 
  5. typedef void (*FunType)(int ); /* ②. 定義一個函式指標型別FunType,與①函式型別一致 */ 
  6. void CallMyFun(
    FunType fp,int x); 
  7. int main(int argc, char* argv[]) 
  8. { 
  9.     CallMyFun(MyFun1,10); /* ⑤. 通過 CallMyFun 函式分別呼叫三個不同的函式 */ 
  10.     CallMyFun(MyFun2,20); 
  11.     CallMyFun(MyFun3,30); 
  12.     return 0;
  13. } 
  14. void CallMyFun(FunType fp,int x) /* ③. 引數fp的型別是 FunType。*/ 
  15. { 
  16.     fp(x);/* ④ . 通過fp的指標執行傳遞進來的函式,注意fp所指的函式是有一個引數的。 *
    / 
  17. } 
  18. void MyFun1(int x) /* ①. 這是個有一個引數的函式,以下兩個函式也相同。 */ 
  19. { 
  20.     printf("函式MyFun1 中輸出:%d\n",x); 
  21. } 
  22. void MyFun2(int x) 
  23. { 
  24.     printf("函式MyFun2 中輸出:%d\n",x); 
  25. } 
  26. void MyFun3(int x) 
  27. { 
  28.     printf("函式MyFun3 中輸出:%d\n",x); 
  29. }