这个typedef定义是什么意思?

ang_biwen 2011-05-09 03:09:45
在一个头文件中有如下定义:
typedef int (*pd)();
typedef int (*pc)(int);
typedef关键字的一般用法格式应该是:typedef A B;
像这样跟一个函数指针式什么意思?
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
半字节 2011-05-09
  • 打赏
  • 举报
回复
直接拿你这个说好了

typedef int (*pc)(int);

int addfive(int i)
{
return (i+5);
}
int addsix(int i)
{
return (i+6);
}
//用上面你的pc定义个指针
pc tempfuncp;
void main()
{
int a=1;
int b=0;
tempfuncp=addfive;
b=tempfunc(a);//这时候b为6
tempfuncp=addsix;
b=tempfunc(a);//这时候b为7
//understand?~
}



ang_biwen 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ljt3969636 的回复:]
直接回别人的帖子直接粘贴过来了,一个意思


C/C++ code

先不看typedef
struct tagMyStruct
{
 int iNum;
 long lLength;
} myStruct; //myStruct这时是变量没问题吧?

加上

typedef struct tagMyStruct

{
 int iNum;
 l……
[/Quote]
这个我明白,和define是一个意思,比如typedef int CC;这样定义之后,就可以用CC声明int型变量。但是我说的例子里,typedef后面跟就跟了一个函数指针,以后怎么用这个语句呢?
晨星 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 ang_biwen 的回复:]
typedef关键字的一般用法格式应该是:typedef A B;
[/Quote]
没有这个说法。
基本上,你可以怎样定义变量,就可以怎样typedef。做法就是在原本定义变量的语句之前加上“typedef”,而效果就是原本的变量名现在成了类型名,它所代表的也正是原来那个变量的类型。
ljt3969636 2011-05-09
  • 打赏
  • 举报
回复
直接回别人的帖子直接粘贴过来了,一个意思


先不看typedef
struct tagMyStruct
{
 int iNum;
 long lLength;
} myStruct; //myStruct这时是变量没问题吧?

加上

typedef struct tagMyStruct

{
 int iNum;
 long lLength;
} MyStruct;
之后
MyStruct myStruct;//之后用MyStruct 定义什么把接在他后面的定义代回在typedef式子中出现的位置他就是什么,这里 把myStruct回即是
struct tagMyStruct
{
 int iNum;
 long lLength;
} myStruct;

有感觉没?
justkk 2011-05-09
  • 打赏
  • 举报
回复
pd 是一个函数指针,没有限定参数
pc 是一个函数指针,只有一个int参数

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧