请教typedef

lgqing66 2011-11-10 09:07:35
typedef struct tagMSG{
HWND hwnd;
UINT message;
……
}MSG,*MSG,NEAR *NMSG,FAR *LPMSG

谁能帮我解释下这个数据结构。特别是MSG,*MSG,*NMSG,LPMSG都是什么含义?
...全文
120 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2011-11-10
  • 打赏
  • 举报
回复
对象,指针,近指针,远指针。
柯本 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiandingzhe 的回复:]
NEAR和FAR是标准C的一部分吗?
[/Quote]
不是,在windows下它是宏
#define far
#define near
....
#define FAR far
#define NEAR near
...
这个是为了兼容
在DOS时代,far与near是有区别的(一个段64K,near在64K以内.far可超过64K)
现在不用了


jiandingzhe 2011-11-10
  • 打赏
  • 举报
回复
这里定义了一个结构体,将类型重命名为MSG。
同时声明了三个指向MSG类型的指针变量,分别叫MSG,NMSG,LPMSG。其中NMSG和LPMSG分别有near和far的修饰。
另外,请把代码塞在论坛的代码框里:

typedef struct tagMSG{
HWND hwnd;
UINT message;
……
}MSG,*MSG, NEAR *NMSG, FAR *LPMSG
5t4rk 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 lgqing66 的回复:]
typedef struct tagMSG{
HWND hwnd;
UINT message;
……
}MSG,*MSG,NEAR *NMSG,FAR *LPMSG

谁能帮我解释下这个数据结构。特别是MSG,*MSG,*NMSG,LPMSG都是什么含义?
[/Quote]

定义新的结构体类型
有不同类型的两种变量
一种是该结构体 一种是指向该结构体的指针
柯本 2011-11-10
  • 打赏
  • 举报
回复
MSG 就是struct tagMSG
*MSG 是指向struct tagMSG的指针
NEAR *NMSG
FAR *LPMSG
都是指向struct tagMSG的指针
其中NEAR ,FAR是为兼容性设计的
jiandingzhe 2011-11-10
  • 打赏
  • 举报
回复
NEAR和FAR是标准C的一部分吗?
y1509713911 2011-11-10
  • 打赏
  • 举报
回复
这些都属于类型,如MSG都是你所构造的结构体类型,而如*MSG则是一个指向你所构造的结构体类型的指针。

64,637

社区成员

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

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