Здравствуйте.
Читаю «Programming In Lua». В главе про C API автор постоянно заканчивает массивы структур «стражем» - структурой с нулевыми полями. Видимо для того, чтобы в цикле можно было проверить, что структура последняя.
Мне не понятно, почему используется такой «изобретательный» подход вместо sizeof?
struct ColorTable {
char *name;
unsigned char red, green, blue;
} colortable[] = {
{"WHITE", MAX_COLOR, MAX_COLOR, MAX_COLOR},
{"RED", MAX_COLOR, 0, 0},
{"GREEN", 0, MAX_COLOR, 0},
{"BLUE", 0, 0, MAX_COLOR},
other colors
{NULL, 0, 0, 0} /* sentinel */
};