可變長度陣列宣告
可變長度陣列宣告在 C 中沒有明確的語法,因此 XDR 會使用角括弧來建立它自己的語法。
在角括弧之間指定大小上限。 可以省略特定大小,以指出陣列可以是任何大小。
variable-array-declaration:
type-ident variable-ident "<" value ">"
type-ident variable-ident "<" ">"
一組可變長度陣列宣告的範例如下:
int heights<12>; /* at most 12 items */
int widths<>; /* any number of items */
附註: 在角括弧之間指定大小上限。 可以省略數字,但不省略角括弧,以指出陣列可以是任何大小。
因為可變長度陣列在 C 中沒有明確的語法,所以這些宣告實際上會編譯成結構定義,以表示struct. 例如,heights宣告會編譯成下列結構:
struct {
u_int heights_len; /* # of items in array */
int *heights_val; /* # pointer to array */
} heights;