2

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

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

 type-name identifier<m>;

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

 string object<m>;

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

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

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

4

1 回答 1

2

您可以使用typedef关键字。

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

    typedef declaration;

新的类型名其实就是typedef声明部分的变量名。例如,以下使用名为“egg”的现有类型定义了一个名为“eggbox”的新类型:

    typedef egg eggbox[DOZEN];    

我们可以定义一个variableLengthString类型

typedef string variableLengthString<>;

然后声明一个variableLengthString数组

variableLengthString object<>;
于 2015-03-22T22:20:30.173 回答