为什么许多 Win32 Strucs 都包含其大小作为成员
Why do many Win32 Strucs contain their size as a member
这不是严格意义上的编程问题,更像是一个设计问题。
使用 WinAPI 中的一些结构时,我注意到它们中的许多都包含一个名为 dwSize
的字段,该字段简单地存储它们的大小,例如 THREADENTRY32 or BLUETOOTH_DEVICE_SEARCH_PARAMS
typedef struct tagTHREADENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ThreadID;
DWORD th32OwnerProcessID;
LONG tpBasePri;
LONG tpDeltaPri;
DWORD dwFlags;
} THREADENTRY32;
考虑到这个设计我觉得很有趣为什么使用这些结构的代码不能使用 sizeof
?
这背后的实际想法是什么?
这是为了支持该结构的未来版本,可能会添加新字段。
这不是严格意义上的编程问题,更像是一个设计问题。
使用 WinAPI 中的一些结构时,我注意到它们中的许多都包含一个名为 dwSize
的字段,该字段简单地存储它们的大小,例如 THREADENTRY32 or BLUETOOTH_DEVICE_SEARCH_PARAMS
typedef struct tagTHREADENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ThreadID;
DWORD th32OwnerProcessID;
LONG tpBasePri;
LONG tpDeltaPri;
DWORD dwFlags;
} THREADENTRY32;
考虑到这个设计我觉得很有趣为什么使用这些结构的代码不能使用 sizeof
?
这背后的实际想法是什么?
这是为了支持该结构的未来版本,可能会添加新字段。