RECTL 和 RECT 有啥区别?
Posted
技术标签:
【中文标题】RECTL 和 RECT 有啥区别?【英文标题】:What's the difference between RECTL and RECT?RECTL 和 RECT 有什么区别? 【发布时间】:2013-01-05 14:15:18 【问题描述】:根据 MSDN,RECT 和 RECTL 是相同的结构。它们之间有什么区别吗?如果没有的话,同时拥有它们而不是只有一个有什么意义?
【问题讨论】:
【参考方案1】:它们之间没有区别,如 MSDN 文章中所述。要了解它们为何存在,您必须回顾历史,回到 Windows 版本 3 及更早版本。这些是 Windows 的 16 位 版本,与现在每个人都使用的 Windows 版本不同。 Windows 3.1 的 Windows SDK 版本在 windows.h 中声明了这样的 RECT 结构:
typedef struct tagRECT
int left;
int top;
int right;
int bottom;
RECT;
并且 ole2.h 头文件使用 long 声明结构元素的 RECTL。当时的 16 位 C 和 C++ 编译器将 int 实现为 16 位类型,适合 16 位处理器的字长,并将 long 实现为 32-位类型。
现代 Windows 版本中使用的 32 位编译器使 int 成为 32 位类型,适合 32 位处理器的字长。并保持 long 为 32 位类型。这使得两种结构类型之间的差异消失了。
【讨论】:
当前的RECT
定义是否有任何理由使用LONG
而不是INT
?以上是关于RECTL 和 RECT 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 中 required 和 @required 有啥区别。它们之间有啥区别,我们啥时候需要使用它们?