我在一篇博客文章中发现了这个C程序:
main()
{
int n;
n = 151;
f(n);
}
f(x)
int x;
{
printf("%d.\n", x);
}
这篇文章没有解释它。有人能解释一下这个奇怪的函数定义是什么意思吗?
我在一篇博客文章中发现了这个C程序:
main()
{
int n;
n = 151;
f(n);
}
f(x)
int x;
{
printf("%d.\n", x);
}
这篇文章没有解释它。有人能解释一下这个奇怪的函数定义是什么意思吗?
f(x)
int x;
{
printf("%d.\n", x);
}
这是一种旧的定义函数的方式。现在可以将其理解为
void f(int x)
{
printf("%d.\n", x);
}
这段代码很糟糕。
f()
函数的声明已经过时。main()
之前应该有 f()
的前向声明。f()
的返回类型缺失。f()
默认为返回int类型,这将导致编译器抱怨未返回值。 - Asblarf请更换您的C语言学习资源!
那是一种非常古老的C语言风格(K&R C)。
f(x)
int x;
{}
等同于
void f(int x)
{}
你真的不应该浪费时间学习那个。
寻找教授 ANSI C C89/C90 的资料,并注意 C99 的新特性(由于许多编译器并未广泛采用,因此要了解差异)。
这是一种非常老式的编码方式。在ANSI中无法正常工作。 最好使用类似于以下内容的东西
void f(int x)
{
... ... ...;/*Whatever is required*/
}