c编译器有多少次传递?

时间:2014-06-19 05:40:45

标签: c

int main()
{
    int res;
    funcAdd(10,20);
}

int funcAdd(int a,int b)
{
    return a+b;
}

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

2 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:2)

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