【发布时间】:2011-12-31 18:32:06
【问题描述】:
在 C 中声明函数时,应该设置一个原型,在该原型中不需要写参数名称。只要有它的类型就足够了。
void foo(int, char);
我的问题是,还包括参数名称是一种好习惯吗?
【问题讨论】:
-
我认为 C 需要参数名称(不过我不了解 C99)。也许您正在考虑 C++。
-
@MarceloCantos:不,C 不需要它们;更好的是,C 标准甚至允许您留下一个空的参数列表,这意味着没有给出有关参数的信息(C99,§6.7.5.3,¶14);将此与 C++ 进行对比,这意味着该函数不接受任何参数。
-
@WTP:这是一个具有讽刺意味的“更好” :) 甚至标准说(§6.11.6 ¶1)“使用带空括号的函数声明符(不是原型格式参数类型声明符) 是一个过时的功能。”,因为它完全违背了原型的部分目的。
-
@MatteoItalia:我刚刚意识到我混淆了声明和定义。 定义需要 C 中的参数名称——而不是 C++——但上面的声明在任何一个中都有效。
标签: c function-prototypes