声明参数类型的语法:
void fxn_name (var_name)
type_name var_name;
{
...
}
它有名字吗?
C标准实际上称之为"旧风格"。C 2018附注149:
如果两种函数类型都是"旧式",则不会比较参数类型。
它将整个函数定义称为具有"标识符列表"(示例中括号中的var_name
(的函数,而不是具有"参数类型列表"的现代风格(如void foo(int x)
中的int x
(。C 2018 6.7.6.3 15:
…如果一个类型有参数类型列表,而另一个类型由包含(可能为空(标识符列表的函数定义指定,…
在形式语法中,函数声明符之后的声明被称为声明列表。C 6.9.1 1:
函数定义:
声明说明符声明列表opt复合语句声明列表:
申报
申报列表
这个标记,声明列表,听起来很普通,但它在语法中的其他任何地方都没有使用,所以宣言列表合语句之前的旧式声明列表。所以,如果你称之为声明列表,没有人会说你错了。
该标准还在纯文本中使用"声明列表"(与形式语法相反(,这是该短语在标准中出现的唯一意义。然而,由于这不是形式语法的一部分,因此很难声称这是"声明列表"的唯一含义,因为这显然是一个通用短语,可以作为任何声明列表进行明显的解释。