typedef这样用有什么用?

willko 2004-08-26 05:18:51
typedef void (*fun)();
...全文
120 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ck2205 2004-08-26
  • 打赏
  • 举报
回复
typedef是创建类型的别名
typedef int INT;
INT a;相当于int a;
Mephisto_76 2004-08-26
  • 打赏
  • 举报
回复
反正就是声明一种类型,名为func,就象int一样,你可以象定义定义int型变量一样定义类型为func的变量,然后将一个原型为void f(),这样的东西赋值给你定义的变量,通过调用变量来调用函数。如下:

#inlcude <iostream>
#include <string>
using namespace std;

typedef void (*func)();
func f;

void A()
{
// do something
}

void B()
{
// do other something
}

int _tmain()
{
int i;
cin >> i;

if( i == 0 )
f = A;
else
f = B;

f();

}
jeby1101 2004-08-26
  • 打赏
  • 举报
回复
总之呢fun就是一个不带参数返回值为void的函数指针的别名
nodummy 2004-08-26
  • 打赏
  • 举报
回复
楼上还是不对,定义类型在C++里面只能通过class、struct、union、enum(确切地说enum还不能算),来实现

typedef仅仅创建类型的别名,它和某个类型的关系相当于引用和对象
hxblvc 2004-08-26
  • 打赏
  • 举报
回复
呵呵,应该说成:
定义一个不带参数的返回值为void类型的函数指针 类型. 少两个字意思可就差远了

可以用它来定义这种函数指针:
fun pmyfun;///定义函数指针
pmyfun= ***;///让它等于一个不带参数的返回值为void类型的函数
(*pmyfun)();//函数调用
nodummy 2004-08-26
  • 打赏
  • 举报
回复
楼上错误
void (*func)();才是定义了一个可能没有参数的没有返回值的函数指针

typedef是创建类型的别名
jeby1101 2004-08-26
  • 打赏
  • 举报
回复
定义一个不带参数的返回值为void类型的函数指针

65,186

社区成员

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

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