深入探讨函数声明语句不同位置的作用域
关于函数声明这一块的知识点,我们在课堂上学到了有两种声明方式,但是没有说到他们的不同之处,所以我今天跟大家讨论一下,函数声明语句放在不同位置的区别:
我们知道函数声明语句的位置比较灵活,既可以在任何函数外部声明,也可以在主调函数内部声明,那他们的区别是啥?
一、结论
区别是:写在外部——程序结构清晰明了、易扩展(任何函数都可以调用它);写在内部——只有主调函数可以调用它(作用域仅是当前主调函数),别的函数要想调用它,得在内部再次声明。
二、过程
首先,被调函数写在主调函数之前时,无需进行函数声明,也可正常运行。(如图)
1.当程序只有一个被调函数时:
函数声明语句写在被调函数内部还是外部,无区别。(如下面2张图)
2.当程序有多个被调函数时,
①写在主函数内部时,只有主调函数能调用,别的函数就都不可以了(如图)
②写在主函数外部时,主调函数与其他函数都能调用这个被调函数(如图)
【内部】
将被调函数的声明语句写在主调函数内部时,只有当前主调函数可以调用被调函数,别的主调函数调用被调函数时,会报错:不兼容的隐式声明函数。
在其他的主调函数中加上被调函数的函数声明语句,才可以运行。
只在主调函数中进行被调函数的声明即可。
即使不写函数声明语句,也可以执行,但是程序会给出警告:被调函数进行了隐式声明。
宁愿不写,也不可以只写在别的主调函数里,这样的话会报错(如上面倒数第三张图)
甚至,我们也可以将被调函数声明语句写在整个程序底部,但会给出警告,并且我们阅读起来不太方便,所以不推荐写在底部。
【外部】
将被调函数的声明语句写在主调函数内部时,其他的任何主调函数都可以调用该被调函数。
- 点赞
- 收藏
- 关注作者
评论(0)