2个回答
展开全部
在main内部你调用了calc函数,这时候main并不知道这是个函数,看起来是不是很奇怪?因为你明明在下面写了完整的calc的定义。
原因是,编译程序是从文件的开始扫描的,一遍扫描一遍生成中间代码,扫描到你调用calc的时候,那时候还没扫描到calc,所以编译程序并不知道这是个函数。
如果你就是想在下面定义calc也是没问题的,只是你需要在main前面声明calc,
像下面这样:
#include<iostream>
int calc(int);//这里是函数的声明
int main()
....
也就是告诉编译器,这是个函数,后面你遇到的时候你就生成这个函数的中间代码,至于这个函数的定义在什么地方,可以在后面扫描的时候找到。
等到编译完成,链接的时候,再把扫描到的calc的真实地址填充到刚才main内部调用calc的地方,也就是把中间代码替换为实际的机器码。这时候函数就可以运行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询