码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-09-18 22:16:24      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   io   os   ar   for   div   sp   

    初学嵌入式,看到了这样一行代码:  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; 、

}                                                                        //感谢网友: zipper9527

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

标签:style   http   color   io   os   ar   for   div   sp   

原文地址:http://www.cnblogs.com/dianzikedalin/p/3980079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!