【发布时间】:2016-06-01 09:07:13
【问题描述】:
为什么这个带有整数声明的代码在中间(函数定义之间)没有抛出错误?
1) 为什么它在语法上是正确的。
2)这样做有什么用。?
#include <stdio.h>
void func(int, int);
int main()
{
int a, b;
a = 10;
b = 20;
func(a, b);
return 0;
}
void func(i, j)
int i,j; //why does this doesn't throw error.
{
printf("a = i = %d\nb = j = %d\n", i, j);
}
【问题讨论】:
-
正如下面的回答,它在语法上是正确的,因为它是有效的——它是做事的原始方式。除非您碰巧使用不支持 ANSI C 的 K&R 风格的编译器,否则现在使用此语法没有任何用处。
-
不要永远为以 K&R 风格定义的函数提供原型。要找出原因,请将函数原型和定义中的
int更改为char。
标签: c syntax kernighan-and-ritchie function-definition