我第一次看到Windows API并遇到WNDCLASSX时,我不禁想知道为什么其成员 cbSize 存在。根据MSDN, cbSize 的描述为:此结构的大小(以字节为单位)。将此成员设置为sizeof(WNDCLASSEX)。一定要在调用GetClassInfoEx函数之前设置这个成员。这描述了它,并暗示了它的用途,但我没有说明必要性。
我的问题是:为什么结构需要存储自己的大小?处理结构的任何函数都不能使用sizeof访问该信息吗?
答案 0 :(得分:22)
Windows API的更高版本可能会向结构中添加新字段。如果struct有一个大小,那么旧代码可以调用API函数,该函数只复制旧代码知道的字段。