Каков правильный синтаксис XDR для массива строк переменной длины?

Я читаю RFC 4506, чтобы понять язык определения данных XDR.

В нем упоминается, что массивы переменной длины объявляются следующим образом.

 type-name identifier<m>;

Также упоминается, что строки переменной длины объявляются следующим образом.

 string object<m>;

К сожалению, единственный способ показать массив строк переменной длины - это связанный список, который кажется очень ручным.

struct *stringlist {
    string item<>;
    stringlist next;
};

Есть ли более простой или более правильный способ объявить массив строк переменной длины?

1 ответ

Решение

Вы можете использовать typedef ключевое слово.

typedef также не объявляет никаких данных, но служит для определения новых идентификаторов для объявления данных. Синтаксис:

    typedef declaration;

Новое имя типа на самом деле является именем переменной в части объявления typedef. Например, следующее определяет новый тип с именем "eggbox", используя существующий тип с именем "egg":

    typedef egg eggbox[DOZEN];    

Мы можем определить variableLengthString введите с

typedef string variableLengthString<>;

а затем объявить variableLengthString массив с

variableLengthString object<>;
Другие вопросы по тегам