2016-03-08 69 views
0

我最近在C中看到了下面的代码,据说这是有效的,但我不确定。声明这个规范的功能

int max(x,y) 
    int x,y; 
    { 
    return (x>y)?x:y; 
    } 

这种函数原型是否有效?如果是这样,请给出一些参考,以更多地了解这一点。

+0

[见这也(http://stackoverflow.com/questions/1630631/alterna TE-C-语法换函数声明-使用情况)。这个问题之前已经被问过很多次了。 – Lundin

回答

5

这是旧式的“K & R”定义功能的方式。新的方式更好,所以不要自己写这样的代码。

+0

哦,我明白了。谢谢。 –

2

此代码是有效的,它只是一个很老的标准。

如今在函数声明中的参数类型声明这些参数名称的前面:

int main(int argc, char **argv) 

但多年以前,有另一个标准在句法是不同的:你必须指定类型像这样:

int main(argc, argv) 
    int argc; char **argv; 

所以,没有什么奇怪在这里,不同的标准提供不同的语法