可变长度字符串数组的正确XDR语法是什么?

时间:2014-10-14 07:34:08

标签: rpc rfc xdr

我正在阅读RFC 4506以了解XDR数据定义语言。

它提到变长数组声明如下。

 type-name identifier<m>;

它还提到可变长度字符串声明如下。

 string object<m>;

不幸的是,它显示具有可变长度字符串数组的唯一方法是链表,这看起来非常手动。

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

是否有更简单或更正确的方法来声明可变长度的字符串数组?

1 个答案:

答案 0 :(得分:2)

您可以使用typedef关键字。

  

typedef也没有声明任何数据,但用于定义新数据      声明数据的标识符。语法是:

    typedef declaration;
     

新类型名称实际上是声明中的变量名称      typedef的一部分。例如,以下定义了一种新类型      叫&#34; eggbox&#34;使用名为&#34; egg&#34;的现有类型:

    typedef egg eggbox[DOZEN];    

我们可以使用

定义variableLengthString类型
typedef string variableLengthString<>;

然后使用

声明variableLengthString数组
variableLengthString object<>;