猪猪小说网

手机浏览器扫描二维码访问

第三十五章 作用域上(第1页)

我和小弦子兴致冲冲地打开了各自电脑上的编辑器,按照老爹刚才所将的内容,依葫芦画瓢定义了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);

intmain(intargc,charconst*args[])

{

intsum=add(a,b);

戚风童话  校园全能马甲女神  我的蛮荒部落  最强豪婿陆凡  梦灾末世生存指南  龙婿陆凡  夫人的病今天好了吗  嗣子荣华路  异界烽火录贰烽云再起  青梅千千结  迟宠  大佬甜妻宠上天  上门龙婿陆凡  阴阳眼小师妹  韩娱之聚光  王妃称心  顾九辞霍明澈  张钟颖  衫生诡  四龙攒凤  

热门小说推荐
道爷下山

道爷下山

鱼,我所欲也熊掌,亦我所欲也,二者不可得兼…小孩子才做选择题,道爷我都要!...

公主嫁到:腹黑将军喜当爹

公主嫁到:腹黑将军喜当爹

简介听闻,烈阳国公主除了美貌一无是处,欺男霸女骄纵蛮横,棒打鸳鸯恬不知耻利用权力逼迫丞相府大公子娶了她。重生醒来,沐云初决心洗心革面,做个韬武略样样精通流芳百世的好公主。...

宫少你老婆又上头条了

宫少你老婆又上头条了

重生前,明歌混得人不如狗,过得凄惨无比。  好在biu地一下,她重生了。  绑定巨星系统,重回十年前,偶尔飙个演技,拍拍戏,唱唱歌,写写小说  一不小心成为国民天后!  什么?  她还是超级网文大神,当红电竞主播,最强神秘网红  你到底还有多少个小马甲?!  粉丝们笑着活下去jpg  神秘boss翩翩而来,在影后颁奖典礼上,星光璀璨下,执起她的手诚挚一吻,对着镜头目光沉默又深情,宣告说她隐藏得最深的马甲就是我的夫人。    非快穿重生娱乐圈撩炸天社会我明歌,人撩情话多...

明贼

明贼

为什么我就如此被动?人家穿越后可以连中三元,可以入阁拜相,而我却要靠美丽的未婚妻救命,甚至被迫从非主流的马贼干起?你严嵩以老卖老?你严世蕃有残疾证?你徐老头忍了整整二十年?ok,随你们的便吧!不过我可没那么好的耐心七战俺达!三征瓦刺!携美下西洋!全球殖土地!我要开创属于我自己的大时代!明贼书友群226203702...

每日热搜小说推荐