STM32bootload——typedef void (*Fun) (void) 理解

1、typdef 用法如下所示

1 typedef unsigned char    uint8_t;
2 typedef unsigned short int  uint16_t;
3 typedef unsigned int    uint32_t;  
4 uint8_t i;  //定义一个8位无符号字符型变量

 2、指针函数形式

 1 //定义一个函数指针pfun,指向一个返回类型为int,有一个参数为int的函数
 2 int (*pfun)(int) ; 
 3 //指针层面理解,函数的函数 名是一个指针
 4 //指针指向函数在内存中的首地址
 5 int shiftfun(int a)
 6 {
 7    int temp;
 8    temp = a;
 9    temp<<a;
10    return a;
11 }
12 int main()
13 {
14     int temp;
15 //将函数shiftfun的地址赋值给变量pfun
16     pfun = shiftfun;  
17 //*pfun ”显然是取pfun 所指向地址的内容,当然也就是取出了函数shiftfun()的内容,然后给定参数为2。  
18      temp = (*pfun)(2);  
19 } 

 3、typedef  返回类型(*新类型)(参数表)

1 typedef char (*PTRFUN)(int);   
2 PTRFUN pFun;   
3 char glFun(int a){ return;}   
4 void main()   
5 {   
6     pFun = glFun;   
7     (*pFun)(2);   
8 } 

 由上对typedef void (*Fun) (void);理解

typedef 的作用是把已知的类型定义新类型,所以新类型(*Func)(void)的返回值是void。

定义了一个新类型,该类型是一个函数指针,它指向的函数形参为void,返回值为void。

猜你喜欢

转载自www.cnblogs.com/smy87/p/9205478.html