交流编译器做了多少次传递?

int main() { int res; funcAdd(10,20); } int funcAdd(int a,int b) { return a+b; } 

在上面的程序中,main不识别funcAdd(),因为它是在main之后定义的,并且在开头没有声明。 如果C编译器执行了2次程序,那么这一定不是问题,因为它知道函数funcAdd()是在第二次传递中定义的。 这是否意味着C是一次通过编译器? 请澄清我的疑问。

C语言没有指定编译器必须经过多少次传递。 但是,它/确实/指定必须在使用它们之前声明它们。 因此,无论编译器通过多少次,您的代码都是无效的。

你的推理无效。 AC编译器可以根据需要进行多次传递,但在这种情况下仍然必须返回错误,因为标准说明了这一点。