typedef type_a(*Pname)(type_b *params);的意思

    初学嵌入式,看到了这样一行代码:  typedef t_error (*pCommandFunc)(uint8 *params);一开始认为typedef后面必须要接两个参数才行,后来发现网上的解释后,才知道这其实就是定义了一个“函数指针”类型。最终的到的是一个叫pCommandFunc的“类型”名。

    其中t_error,uint8是之前就有的宏定义类型,而这一行代码其实将pCommandFunc变成了一个函数指针类型,可以用来“定义”一种“指针”,可以指向t_error FunName(unint8 *params)这样结构的函数。以下是从网上找到的例子:

//func.h

int add_(int a,int b)

{  

return a+b;

}

int multiply_(int a ,int b)

{

 return a*b;

}

int minus_(int a,int b)

{

 return a-b;

}

int div_(int a ,int b)

{  

return a/b;

}

typedef int (*pfunc)(int ,int);

//main.cpp

#include <iostream>

#include "func.h"

using namespace std;

int main()

{  int aa =6,

bb=3;  

pfunc p = add_;   //用pfunc来定义一个指向函数的指针变量,pfunc就是一种类型而已  

cout << p(aa,bb) <<endl;  

p = multiply_;  

cout <<p(aa,bb) <<endl;  

p = minus_;  

cout <<p(aa,bb) <<endl;  

p = div_;

 cout <<p(aa,bb) << endl;

 return 0; 、

}                                                                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值