c語言定義函數指針和typedef簡寫


  二種方法來定義函數指針

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<Windows.h>
 4 
 5 int add(int a, int b)
 6 {
 7     return a + b;
 8 }
 9 
10 //void msg(char s[])
11 //void (*p)(char s[]) 函數指針的定義方法
12 //void (*)(char *s)   函數指針的類型
13 
14 void msg(char s[])
15 {
16     MessageBoxA(0,s,s,0);
17 }
18 
19 
20 void main()
21 {
22     //方法1
23     //定義函數指針的規則
24     //1.先把函數拿過來  int add(int a, int b) , add就是一個地址
25     //2.把函數名挖空    int (*p)(int a,int b);
26     int(*padd)(int a, int b); //函數指針
27     //3.賦值
28     padd = add;
29     printf("%d", padd(11, 19));//30
30 
31     //方法2.直接初始化
32     void(*pmsg)(char s[]) = msg; //定義函數指針並初始化
33     pmsg("心里的雨傾盆的下");
34 
35     getchar();
36 }

   通過typedef構建

 1 //使用typedef給函數指針類型一個別名
 2 //typedef沒有定義新的類型,給已經有的類型起一個別名,減少輸入
 3 typedef int(*PADD)(int a, int b); //*類型, PADD存儲函數地址
 4 typedef void(*MEG)(char s[]);
 5 
 6 void main()
 7 {
 8     PADD padd1 = add; //創建函數指針
 9     printf("%d",padd1(11,23));
10     
11     MEG meg1 = msg;
12     meg1("心里的雨傾盆的下");
13 
14     getchar();
15 }

 


免責聲明!

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



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