typedef 在函数前面的用法
时间:2011-12-05
来源:互联网
typedef struct {
int MsgId; /* type of message */
WM_HWIN hWin; /* Destination window */
WM_HWIN hWinSrc; /* Source window */
union {
void* p; /* Some messages need more info ... */
int v;
GUI_COLOR Color;
} Data;
} WM_MESSAGE
没明白在函数前面加这个typedef作用 ,我知道typedef是起别名的,在结构体里面也是为了简化,不过没理解这里的typedef什么作用。
上面的和 下面的联系 怎么回事呢
作者: EmbeddedLong 发布时间: 2011-12-05
可参考
http://wenku.baidu.com/view/e9efb70879563c1ec5da7153.html
作者: sxbwelcome 发布时间: 2011-12-05
作者: cfjtaishan 发布时间: 2011-12-05
第一个是给特定函数取名字
第二个是给结构体取名字
typedef void WM_CALLBACK( WM_MESSAGE* pMsg);
void fun(WM_MESSAGE *Msg)
{
......
}
WM_CALLBACK vm_CALLBACK;
vm_CALLBACK = fun;
WM_MESSAGE *Msg;
vm_CALLBACK(Msg)
作者: studyCBC 发布时间: 2011-12-05
作者: mosal 发布时间: 2011-12-05
typedef struct { int MsgId; /* type of message */ WM_HWIN hWin; /* Destination window */ WM_HWIN hWinSrc; /* Source window */ union { void* p; /* Some messages need more info ... */ int v; GUI_COLOR Color; } Data; } WM_MESSAGE; typedef void WM_CALLBACK( WM_MESSAGE* pMsg); 是这样的吧,下边是函数别名,WM_CALLBACK *pfunc就是函数指针了。 也可以直接typedef void (*WM_CALLBACK)( WM_MESSAGE* pMsg); WM_CALLBACK pfunc;
作者: qq120848369 发布时间: 2011-12-05
既然LZ知道typedef 就是取别名,那应该理解啊
第一个是给特定函数取名字
第二个是给结构体取名字
typedef void WM_CALLBACK( WM_MESSAGE* pMsg);
void fun(WM_MESSAGE *Msg)
{
......
}
WM_CALLBACK vm_CALLBACK;
vm_CALLBACK = fun;……
还是有一点不是很清楚,
我知道比如 typedef char (*f)(int ) //这是是定义了一个f的函数,一个带有int参数的,且指向char的函数。
那对于typedef void WM_CALLBACK( WM_MESSAGE* pMsg);
里面的函数是WM_MESSAGE 具有pMsg参数的指针 返回的也是一个函数(WM_CALLBACK)?对吗?
作者: EmbeddedLong 发布时间: 2011-12-05
typedef void WM_CALLBACK( WM_MESSAGE* pMsg); // 头次看到
作者: AnYidan 发布时间: 2011-12-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28