问个函数原型的问题?

如果在主函数main下面还有个函数,就必须在编译开头声明函数原型,这是什么原因?还想问下什么情况不需要声明函数原型... 如果在主函数main下面还有个函数,就必须在编译开头声明函数原型,这是什么原因?还想问下什么情况不需要声明函数原型 展开
 我来答
圆球球UOB
2008-03-31 · TA获得超过648个赞
知道小有建树答主
回答量:317
采纳率:0%
帮助的人:0
展开全部
因为编译器编译你的程序的时候是从上往下读的。他需要你对所有非系统保留的字进行解释。也就是说,如果你先使用函数,再定义函数,编译器会先读到你使用该函数的语句,然后再读到你定义函数的语句,从而发现无法识别该函数。
声明函数的原型主要取决于编程人员的编程风格。有些人喜欢把所有自定义函数写在main函数之后,所以开头就必须定义函数原型。如果你把main函数放在整个程序的最后,所有的函数原型都不需要声明。但是有一个特例,就是函数的递归调用。比如函数A(int b)是一个递归函数,也就是说,A还会调用A,那么必须在开头声明这个函数,因为当编译器读到A这个函数的时候,函数还没有定义完,就遇到了调用这个函数。
百度网友d127579
2008-03-31 · TA获得超过1663个赞
知道小有建树答主
回答量:634
采纳率:0%
帮助的人:0
展开全部
编译器在变异过程中遇到的标识符都必须是预先有明确定义的。

所以当函数定义在main后定义,而在main里边就有使用时,编译器遇到main内的函数调用就不知道具体定义是什么,所以需要在main函数前有声明,告诉编译器在别的地方有详细定义,然后编译器就会自己去搜索定义。

main前的函数声明就是这个作用。

也因此当函数是在main前定义的时,就不需要特别声明,他的声明和定义是同时完成的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mei_yueping
2008-03-31 · 超过19用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:0
展开全部
楼上说的都很对,其实这只是C的情况,JAVA里只要你写了,无须声明的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式