为什么结构可以存储自己的大小?

Jos*_*eau 15 c++ winapi sizeof

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

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

小智 22

更高版本的Windows API可能会向结构中添加新字段.如果结构具有大小,则较旧的代码可以调用API函数,该函数仅复制旧代码知道的字段.

  • 也许WinAPI这次做得对.:) (7认同)