新手弱弱地问一下这段C++程序为啥不对?

这个如何破... 这个如何破 展开
 我来答
carea
2016-12-24 · TA获得超过459个赞
知道小有建树答主
回答量:395
采纳率:65%
帮助的人:103万
展开全部

在main内部你调用了calc函数,这时候main并不知道这是个函数,看起来是不是很奇怪?因为你明明在下面写了完整的calc的定义。

原因是,编译程序是从文件的开始扫描的,一遍扫描一遍生成中间代码,扫描到你调用calc的时候,那时候还没扫描到calc,所以编译程序并不知道这是个函数。

如果你就是想在下面定义calc也是没问题的,只是你需要在main前面声明calc,

像下面这样:

#include<iostream>

int calc(int);//这里是函数的声明

int main()

....

也就是告诉编译器,这是个函数,后面你遇到的时候你就生成这个函数的中间代码,至于这个函数的定义在什么地方可以在后面扫描的时候找到。

等到编译完成,链接的时候,再把扫描到的calc的真实地址填充到刚才main内部调用calc的地方,也就是把中间代码替换为实际的机器码。这时候函数就可以运行了。

sorthoth
2016-12-24 · TA获得超过685个赞
知道小有建树答主
回答量:531
采纳率:42%
帮助的人:293万
展开全部
克变千克是除以一千,不是乘以一千
追问
对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式