功能定义C.

Kar*_*and 10 c function

可能重复:
C函数语法,参数列表后声明的参数类型

我在" 专家C编程 "中看到了以下函数定义语法

int compare(s1, s2)
    char * s1, *s2;
{
    while (*s1++ == *s2) {
        if (*s2++ == 0) return (0);
    }
    return (*--s1 - *s2);
}
Run Code Online (Sandbox Code Playgroud)

上述定义如何有效?它编译和运行完美,没有任何错误.

对于函数定义,我更熟悉以下语法

int compare(char * s1,char *s2)
{
    while (*s1++ == *s2) {
        if (*s2++ == 0) return (0);
    }
    return (*--s1 - *s2);
}
Run Code Online (Sandbox Code Playgroud)

并且我没有看到书中给出的那个(在我大学或其他地方学习C时),任何人都可以对书中给出的那些进行一些说明.

Ósc*_*pez 6

这个主题已经讨论之前,它是"Kernighan和Ritchie的风格"功能的定义.

现在你应该更喜欢第二种语法,出于向后兼容性的原因,第一种语法仍然被一些编译器接受,但是出于所有实际目的,它应被视为已弃用.