Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

6.10.3 声明

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

  • 指向不完全类型的指针

  • 返回不完全类型的函数

  • 不完全函数参数类型

  • 不完全类型的 typedef 名称

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

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