可能重复:
C function syntax, parameter types declared after parameter list函数定义Ç
我看到函数定义如下语法 “C专家编程”
int compare(s1, s2)
char * s1, *s2;
{
while (*s1++ == *s2) {
if (*s2++ == 0) return (0);
}
return (*--s1 - *s2);
}
是怎样的以上定义有效?它编译和运行完美没有任何错误。
我更舒服以下语法函数定义
int compare(char * s1,char *s2)
{
while (*s1++ == *s2) {
if (*s2++ == 0) return (0);
}
return (*--s1 - *s2);
}
,并没有在那里我看到在书中给出了一个(在研究下,在我的大学或其他地方),任何人都可以请扔在书中给出的一些光。
这是旧的和不推荐使用的函数声明语法。有时称为“K&R风格”。 – cnicutar
这是一种古老的风格,但仍然被语言所接受。顺便说一句:我认为20年前“专家C编程”书不应该包含“return(0);' – wildplasser
”,但仍然不能处理* second *语法的编译器。 – Amadan