Чтение данных с различными форматами в C ++ - PullRequest
3 голосов
/ 14 февраля 2009

Я создаю свой первый настоящий двоичный синтаксический анализатор (TIFF-ридер) и у меня есть вопрос относительно того, как распределить память. Я хочу создать структуру в моем классе TiffSpec для записей IFD. Эти записи всегда будут 12 байтов, но в зависимости от типа, указанного в этой конкретной записи, значения в конце могут быть разных типов (или, может быть, просто адрес в другом месте в файле). Каков наилучший способ получения данных такого рода? Память наименьшего размера, с которой я бы имел дело, была бы 1 байт.

1 Ответ

5 голосов
/ 14 февраля 2009

В C ++ вы должны использовать union.

Это механизм, с помощью которого вы можете определить несколько перекрывающихся типов данных, возможно, с общим заголовком.

См. в этой статье о том, как использовать союзы именно для вашей проблемы - общий заголовок с различными данными под ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...