为什么结构体可以存储自己的大小?
Why might a struct store its own size?
我第一次看到Windows API,在遇到WNDCLASSX时,我不禁想知道为什么它的成员cbSize存在。根据MSDN, cbSize的描述为:该结构的大小,以字节为单位。设置这个成员为sizeof(WNDCLASSEX)。一定要在调用GetClassInfoEx函数之前设置这个成员。这是对它的描述,并暗示了它的目的,但我不明白它的必要性。
我的问题是:为什么一个结构体需要存储自己的大小?难道处理该结构的函数不能使用sizeof访问该信息吗?
Windows API的后续版本可能会向该结构体添加新的字段。如果结构体有大小,那么旧代码可以调用API函数,该函数只复制旧代码所知道的字段。
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- C++从对象自己的类中删除对象
- 使用 std::optional,而不是自己的结构
- 子轴围绕父轴而不是他自己的轴旋转
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- C++ 如何为自己的迭代器类从迭代器转换为const_iterator?
- 重载 + 自己的类和 std::string 的运算符
- 类无法访问自己的私有静态 constexpr 方法 - Clang bug?
- 是否可以在不填充自己的参数的情况下将模板函数作为参数传递?
- 为什么存储在数组中的地址值与其自己的地址相同,它应该指向某个不同的地址(&arr[0])?
- 如何将自己的链表实现从存储整数更改为存储个人数据
- 张量类,它有自己的存储,但也可以映射外部指针
- 我应该在C 中存储(放置)我自己的例外
- C 程序要读取包含两个双重值的Excel数据的单列,这些值由逗号分隔并存储在自己的数组中
- 我自己的存储引擎因为sort_buffer过小而崩溃
- 使用fstream将其他文件保存在自己的数据存储中
- 为什么结构体可以存储自己的大小?
- 创建自己的输出存储而不是应用于现有存储的c++算法