Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.2. Управление работой RDS и функции общего назначения
А.5.2.3. Макрос RDS_INITSERVSIZE – инициализация поля размера в стандартных структурах RDS
Макрос RDS_INITSERVSIZE присваивает полю servSize переданной в его параметре структуры размер этой структуры в байтах.
RDS_INITSERVSIZE(
structvar // Переменная-структура
)
Определение
#define RDS_INITSERVSIZE(structvar) \ structvar.servSize=sizeof(structvar)
Параметр
- structvar (структура)
- Переменная, представляющая собой структуру одного из стандартных типов RDS, в которой есть поле servSize.
Примечания
Присваивать полю servSize размер содержащей его структуры необходимо перед вызовом большинства сервисных функций, работающих со стандартными структурами RDS (см. приложение А.4). Сервисные функции, в которые передаются указатели на эти структуры, прежде всего сравнивают беззнаковое целое число (DWORD), содержащееся в самом первом поле структуры, с ожидаемым размером структуры данного типа. Если это число окажется меньше ожидаемого размера, функция либо сообщит вызвавшей программе об ошибке, либо будет работать только с полями структуры, укладывающимися в переданный размер.
Пример
// Структура описания блока RDS_BLOCKDESCRIPTION descr; // Присвоение размера структуры первому полю RDS_INITSERVSIZE(descr); // Получение описания блока rdsGetBlockDescription(Block,&descr);