深入探讨函数声明语句不同位置的作用域

举报
kitty787 发表于 2021/06/26 21:32:58 2021/06/26
【摘要】 关于函数声明这一块的知识点,我们在课堂上学到了有两种声明方式,但是没有说到他们的不同之处,所以我今天跟大家讨论一下,函数声明语句放在不同位置的区别:我们知道函数声明语句的位置比较灵活,既可以在任何函数外部声明,也可以在主调函数内部声明,那他们的区别是啥?一、结论区别是:写在外部——程序结构清晰明了、易扩展(任何函数都可以调用它);写在内部——只有主调函数可以调用它(作用域仅是当前主调函数),...

关于函数声明这一块的知识点,我们在课堂上学到了有两种声明方式,但是没有说到他们的不同之处,所以我今天跟大家讨论一下,函数声明语句放在不同位置的区别:

我们知道函数声明语句的位置比较灵活,既可以在任何函数外部声明,也可以在主调函数内部声明,那他们的区别是啥?

一、结论

区别是:写在外部——程序结构清晰明了、易扩展(任何函数都可以调用它);写在内部——只有主调函数可以调用它(作用域仅是当前主调函数),别的函数要想调用它,得在内部再次声明。

二、过程

首先,被调函数写在主调函数之前时,无需进行函数声明,也可正常运行。(如图)

1.当程序只有一个被调函数时:

函数声明语句写在被调函数内部还是外部,无区别。(如下面2张图)

2.当程序有多个被调函数时,

①写在主函数内部时,只有主调函数能调用,别的函数就都不可以了(如图)

②写在主函数外部时,主调函数与其他函数都能调用这个被调函数(如图)

【内部】

将被调函数的声明语句写在主调函数内部时,只有当前主调函数可以调用被调函数,别的主调函数调用被调函数时,会报错:不兼容的隐式声明函数。

在其他的主调函数中加上被调函数的函数声明语句,才可以运行。

只在主调函数中进行被调函数的声明即可。

即使不写函数声明语句,也可以执行,但是程序会给出警告:被调函数进行了隐式声明。

宁愿不写,也不可以只写在别的主调函数里,这样的话会报错(如上面倒数第三张图)

甚至,我们也可以将被调函数声明语句写在整个程序底部,但会给出警告,并且我们阅读起来不太方便,所以不推荐写在底部。

【外部】

将被调函数的声明语句写在主调函数内部时,其他的任何主调函数都可以调用该被调函数。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。