15

我第一次看到 Windows API,在遇到WNDCLASSX时,我不禁想知道为什么它的成员cbSize存在。根据MSDN,对cbSize的描述是:此结构的大小(以字节为单位)。将此成员设置为 sizeof(WNDCLASSEX)。请务必在调用 GetClassInfoEx 函数之前设置此成员。这描述了它,并暗示了它的目的,但我并不理解它的必要性。

我的问题是:为什么结构需要存储自己的大小?处理该结构的任何函数都不能使用sizeof访问该信息吗?

4

1 回答 1

22

更高版本的 Windows API 可能会向结构添加新字段。如果结构有大小,那么旧代码可以调用 API 函数,该函数只复制旧代码知道的字段。

于 2013-04-30T02:31:42.780 回答