我正在阅读RFC 4506以了解 XDR 数据定义语言。
它提到可变长度数组声明如下。
type-name identifier<m>;
它还提到可变长度字符串声明如下。
string object<m>;
不幸的是,它显示具有可变长度字符串数组的唯一方法是链表,这似乎非常手动。
struct *stringlist {
string item<>;
stringlist next;
};
有没有更简单或更正确的方法来声明一个可变长度的字符串数组?
您可以使用typedef
关键字。
typedef
也不声明任何数据,但用于定义用于声明数据的新标识符。语法是:typedef declaration;
新的类型名其实就是typedef声明部分的变量名。例如,以下使用名为“egg”的现有类型定义了一个名为“eggbox”的新类型:
typedef egg eggbox[DOZEN];
我们可以定义一个variableLengthString
类型
typedef string variableLengthString<>;
然后声明一个variableLengthString
数组
variableLengthString object<>;