【发布时间】:2011-06-19 12:35:39
【问题描述】:
标准(最新版本:WG14/N1256)说(6.2.1 §2):
函数原型是声明其参数类型的函数的声明。
在此声明附近,我们还发现了标识符声明由声明符或类型说明符(§4)组成的证据:
每个其他标识符的范围由其声明的位置决定(在 声明符或类型说明符)。
因此,知道函数定义是否是函数原型似乎可以归结为知道函数定义是否是声明符。是吗?
我需要一个符合 C 标准的经过验证的答案。我并不真正关心通常的含义,或者维基百科或您最喜欢的 C 书籍所说的内容。
这是标准中让我认为函数定义确实可以是函数原型(§4)的声明:
如果声明标识符的声明符或类型说明符出现在函数原型的参数声明列表中(不是函数的一部分 定义),...
【问题讨论】:
-
请注意,“声明其参数的类型”是为了区分函数原型与旧式 K&R 函数,后者没有这样做,例如
int foo(x, y)与int foo(int x, int y).
标签: c c99 prototype function-prototypes