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 ,没有标识符
[]
是否也是声明者?(我认为不是因为它没有声明标识符,但参数的语法表明它是!)
答案 0 :(得分:6)
在无标识符参数声明中,您有一个抽象声明符。也就是说,[]
中的int f(int [], int n)
是数组的抽象声明符。您可以在ISO / IEC 9899:2011(C11标准)中的§6.7.6声明符和§6.7.7类型名称章节中找到更多内容。