Sun Studio 12:C 用户指南

6.11.3 声明

某些声明可使用不完全类型,但是其他声明需要完全对象类型。需要对象类型的声明是数组元素、结构或联合的成员以及函数的局部对象。所有其他声明允许不完全类型。特别地,允许下列构造:

函数返回和参数类型特殊。除 void 之外,在定义或调用函数之前,必须完成以这种方式使用的不完全类型。返回类型的 void 指定不返回值的函数,单个参数类型的 void 指定不接受参数的函数。

由于数组和函数的参数类型重写为指针类型,因此表面上不完全的数组参数类型实际上并非不完全。mainargv 的典型声明(即 char *argv[],一个未指定长度的字符指针数组)重写为指向字符指针的指针。