C标准 - 函数定义是函数原型吗?

时间:2011-02-01 19:39:43

标签: c c99 prototype function-prototypes

标准(最新版本:WG14 / N1256)说(6.2.1§2):

  

函数原型是声明其参数类型的函数的声明。

在本声明的附近,我们还发现标识符声明由声明者或类型说明符(§4)组成的证据:

  

其他所有标识符的范围取决于其声明的放置(在   声明者或类型说明符)。

因此,似乎知道函数定义是否是函数原型归结为知道函数定义是否是声明符。是吗?

我需要一个符合C标准的经过验证的答案。我并不真正关心通常的含义,或维基百科或你最喜欢的C书所说的。

以下是标准中的陈述,使我认为函数定义确实可以是函数原型(§4):

  

如果声明标识符的声明符或类型说明符出现在函数原型的参数声明列表中(不是函数的一部分)   定义),...

1 个答案:

答案 0 :(得分:6)

是,见6.9.1关于功能定义,第7段:

  

如果声明者包含参数   类型列表,列表也指定了   所有参数的类型;这样的   声明器也可以作为一个函数   后来调用原型的原型   功能在同一个翻译单元。