【发布时间】:2016-03-08 14:50:18
【问题描述】:
我最近在 C 中看到了以下代码,据说是有效的,但我不确定。
int max(x,y)
int x,y;
{
return (x>y)?x:y;
}
这种函数原型有效吗?如果是这样,请提供一些参考以了解更多信息。
【问题讨论】:
-
See this also。这个问题已经被问过很多次了。
标签: c function-prototypes
我最近在 C 中看到了以下代码,据说是有效的,但我不确定。
int max(x,y)
int x,y;
{
return (x>y)?x:y;
}
这种函数原型有效吗?如果是这样,请提供一些参考以了解更多信息。
【问题讨论】:
标签: c function-prototypes
这是定义函数的老式“K&R”方式。新的方式更好,不要自己写这样的代码。
【讨论】:
这段代码是有效的,它只是一个相当古老的标准。
现在在函数声明中,参数的类型是在这些参数的名称之前声明的:
int main(int argc, char **argv)
但几年前还有一个语法不同的标准:您必须像这样指定类型:
int main(argc, argv)
int argc; char **argv;
所以,这里没什么奇怪的,不同的标准提供不同的语法
【讨论】: