2

6.7.6 声明者

每个声明符声明一个标识符,并断言当与声明符形式相同的操作数出现在表达式中时,它指定一个函数或对象,其范围、存储期限和类型由声明说明符指示。

并且还说明了参数的语法

parameter-declaration:
    declaration-specifiers declarator
    declaration-specifiers abstract-declarator(opt)

对于给定的函数原型

int f( int a[], int n); 

int a[]a[]用声明标识符的声明器声明一个参数a


虽然在

int f( int [], int n);

int []声明参数是一个没有标识符的 int 数组。也是声明者吗
[](我认为不是,因为它没有声明标识符,但参数的语法说它是!)

4

1 回答 1

6

在无标识符参数声明中,您有一个抽象声明符。也就是说,[]inint f(int [], int n)是数组的抽象声明符。您可以在 ISO/IEC 9899:2011(C11 标准)中的§6.7.6声明符和 §6.7.7类型名称部分找到更多信息。

于 2013-07-22T18:05:58.020 回答