手机浏览器扫描二维码访问
我和小弦子兴致冲冲地打开了各自电脑上的编辑器,按照老爹刚才所将的内容,依葫芦画瓢定义了add函数。
「呀!
编译出错了!
」
我确认了一边代码的书写应该没有错,然后凑近小弦子的屏幕看了看他那边的情况,没想到小弦子那边居然没有出任何问题,编译成功了!
这是怎么回事?
借住翻译软件,我大概弄明白了错误信息,原来是我定义函数的地方有误。
通过对比我和小弦子的代码,我发现自己定义函数的位置在main函数中,而小弦子定义在main函数之外。
「在c语言中,一个函数是不能定义在另外一个函数之内的!
」
老爹不着痕迹地看了我的代码一眼,瞬间就看出了问题所在。
「原来是这样!
」
我在心里说了一声,然后就将代码剪切粘贴到main函数后边,至于为什么是后边嘛,因为小弦子放在前边的,我可不想和他一样。
这回编译倒是通过了,但是报了一个警告信息:「implicitdeclarationoffunctionadd」
意思是函数add隐式声明。
这让我一头雾水,隐式声明又是个什么鬼意思?关键是小弦子那边什么信息都没有输出!
难道问题出在顺序上面?
我在心中暗自狐疑,因为现在我和小弦子的代码唯一不同的地方就是定义main函数和add函数的位置不一样。
小弦子那边add函数定义在main函数前,而我定义在main函数后边。
为了验证心中的猜想,于是我又将它们的顺序调换了一下,警告信息果然消失了!
我运行了一下,程序得到了预期的结果,证明逻辑是没有问题的。
接着我又将mian和add顺序恢复到原来的样子,再次编译,警告信息果然又出现了。
我尝试着运行程序,居然也得到了正确的结果!
「刚才我就说了,在使用一个函数之前,必须要先声明它,否则就会报『implicitdeclarationoffunctionadd』警告。
所以我们在main函数中使用add函数,就应该在main函数之前声明add。
当然了,如果在程序中我们压根就没有定义这么一个函数,除了会有这句警告之外,还会有一个错误:『undefinedreferencetoadd』」
我试了一下,果真如同老爹所言。
「那为什么我在main函数后面声明add,程序运行的结果依旧是对的呢?」
「这个就是c语言不严谨的地方了,以后随着你们逐渐深入了解c语言,其实类似这样的问题还有很多。
所以后来的c对这些问题进行了修复,整个体系就更为严谨、标准化。
」
老爹笑了笑。
「哦,好吧!
原来那些开发c语言的科学家也会有bug的时候啊!
」
「当然了,我之前都给你说过了,无论是技术多么牛的程序员,都不可能排着胸脯说自己的程序没有任何的bug,特别是软件体系特别庞大的时候。
其实刚刚那个问题,add也不是不可以放在main函数后面,如果我们把函数的声明和实现分开的话就行了。
函数的定义分为声明和实现两个过程,你们现在写的这种形式是将两个过程融合在一起了,如果我们把add的声明放在main函数前边,定义放在后边就不会有警告信息了,就像这个样子:
intadd(inta,intb);
...
最火新书一代武陵仙尊陈信,打破界域壁垒,以大轮回印法重生于故乡千年前的地球。这一世,我要喝最烈的酒,泡最美的妞,装最牛的比,打最疼的脸!顺我者昌,逆我者亡!...
宋少‘病宠’诊断书 姓名宋辞(男) 年龄25 症状记忆信息每隔72小时全部清空,十年不变无一例外,近来出现异常,女艺人阮江西,独留于宋辞记忆。(特助秦江备注我伺候了boss大人七年了,boss大人还是每隔三天问我‘你是谁’,阮姑娘才出现几天,boss大人就对着人姑娘说‘我谁都不记得,我只记得你,记得你亲过我,那你只喜欢我一个,好不好’,秦江吐槽boss,你平时开会时候的高冷哪里去了?) 医生建议神经搭桥手术配合催眠治疗 病人自述为什么要治疗?我记得我家江西就够了。 医生诊断病人家属阮江西已主宰病人思维意识,医学史定义为深度解离性失忆 心理学对宋辞的病还有一种定义,叫阮江西。 阮江西是谁? 柏林电影节上唯一一位仅凭一部作品摘得影后桂冠的华人女演员。有人说她靠潜规则上位,有人说她以色侍人,阮江西的经纪人是这样回复媒体的谁说我家艺人潜规则宋少,分明是宋少倒贴,倒贴! 阮江西听了,笑着和宋辞打趣媒体都说我和你是金主和情人的关系。 隔了一天,宋辞将他所有资产转到阮江西名下你可以和媒体说,你才是金主,是你包养我 剧场一 阮江西是有...
一个被外星科技融合多年后重返大陆的故事。与外星科技的融合达到了前所未有的完美他从经营多年的小岛重回到这片大陆返回家乡后完成了多年的心愿而后正好赶上黑道风起云涌凭着多年经营的关系网他又在这声风云变色中扮演着什么角色呢新书谪悯已经通过审核,十五日正式开始上传,请新旧读者先收藏着吧,有空的就说上两句,谢谢!链接httpswww17kcombook55727html...
世家横行,宗门林立,神州大陆的资源被瓜分的一干二净。没有资源怎么修炼?抢!没有抢不来的东西,只有不努力的劫匪!武道之路,决不后退!这是黑风寨大少爷夏临喊出的豪言壮语。—已完本植物制卡师传奇,请放心收藏。企鹅交流群88183082...
武道极尽,一念可碎山河,挥袖可断万古!少年林炎跌落天才之位,历经千辛万苦,终获九脉化龙决,崛起于微末,战八荒,压天骄,独掌乾坤。纵使前路有至尊拦路又如何?凭我手中三尺青锋,杀出个朗朗乾坤!...