为什么这个代码在不知名的地方(中间函数定义)中有整数声明,而不是抛出错误?
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);
}
答案 0 :(得分:3)
TL; DR - K&amp; R风格。
在您的代码中
void func(i, j)
int i,j; {
不会抛出错误,因为它 一个(唯一的)有效语法,曾经一度。
目前 无效 ,但不再使用。
如果需要,您可以阅读有关K&R style syntax here的更多信息。
答案 1 :(得分:1)
此
class
称为K&R语法。它已经过时但仍在某些C项目中使用,例如void func(i, j)
int i,j; //declare types of arguments
{
//function body
}
。