int main()
{
int res;
funcAdd(10,20);
}
int funcAdd(int a,int b)
{
return a+b;
}
在上面的程序中,main不识别funcAdd(),因为它是在main之后定义的,并且在开头没有声明。如果C编译器执行了2次程序,那么这一定不是问题,因为它知道函数funcAdd()是在第二次传递中定义的。这是否意味着C是一次通过编译器?请澄清我的疑问。
答案 0 :(得分:11)
C语言没有指定编译器必须经过多少次传递。但是,它/确实/指定必须在使用之前声明函数。因此,无论编译器通过多少次,您的代码都是无效的。
答案 1 :(得分:2)
你的推理无效。 C编译器可以根据需要进行多次传递,但在这种情况下仍然必须返回错误,因为标准是这样说的。