Ответ 1
В более поздних версиях Windows API могут добавляться новые поля в структуру. Если структура имеет размер, более старый код может вызывать функцию API, которая копирует только те поля, о которых знает старый код.
Я впервые рассмотрел API Windows и столкнулся с WNDCLASSX. Я не мог не задаться вопросом, почему его член, cbSize. Описание cbSize для MSDN: Размер в байтах этой структуры. Установите этот член в sizeof (WNDCLASSEX). Обязательно установите этот элемент перед вызовом функции GetClassInfoEx. Это описывает это и намекает на его цель, но я не расстаюсь с необходимостью.
Мой вопрос заключается в следующем: почему структура должна когда-либо хранить свой собственный размер? Не будет ли какая-либо функция, обрабатывающая структуру, иметь доступ к этой информации с помощью sizeof?
В более поздних версиях Windows API могут добавляться новые поля в структуру. Если структура имеет размер, более старый код может вызывать функцию API, которая копирует только те поля, о которых знает старый код.