可變長度陣列宣告

可變長度陣列宣告在 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;