首页 / 语言 / EasyC++,函数与语言链接性

EasyC++,函数与语言链接性

想要追求更好阅读体验的同学,可以点击「阅读原文」访问github仓库。
 
const
关于const的含义和使用我们之前已经讨论过了,但const限定符对于默认存储类型是有影响的。
 
在默认情况下,全局变量的链接性是外部的,也就是说所有文件均可使用。但const全局变量的链接性是内部的,也就是说只能在本文件当中使用。全局const定义就好像使用了static说明符一样。
 
这个设定看起来有些令人费解,其实是编译器中的一个优化。因为我们常常将一组常量放在头文件当中,并且在多个文件当中include这个头文件。如果const声明的链接性也是外部的,根据单定义规则,这会出错。正是为了避免这种情况发生,所以编译器做了优化,规定了const关键字修饰的全局变量,链接性也为内部。
 
如果出于某种原因,程序员希望某个常量的链接性为外部的,可以使用extern关键字来覆盖默认的内部链接性:
 
extern const int states = 30;
在这种情况下,必须所有使用了该常量的文件中使用extern关键字来声明它。然而,由于const在多个文件之间共享,因此只有一个文件可以对它进行初始化。
 
函数和链接性
和变量一样,函数也有链接性。和C语言一样,C++不允许在一个函数当中定义另外一个函数,因此所有函数的存储持续性都默认是静态的,即在整个程序运行期间都一直存在。
 
在默认情况下,函数的链接性是外部的,也就是说可以跨文件使用。我们可以使用关键字static来讲函数的链接性设置成内部的,这样就只有当前文件可以使用。

本文来自网络,不代表糖果站长网立场,转载请注明出处:https://www.1tg.com.cn/html/biancheng/yuyan/2021/1206/27549.html

dawei作者

【声明】:糖果站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
上一篇
下一篇

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息
返回顶部

【免责声明】本站内容转载自互联网,其发布内容言论不代表本站观点,如果其链接、内容的侵犯您的权益,烦请提交相关链接至邮箱xwei067@foxmail.com我们将及时予以处理。

Copygight © 2013-2023 https://www.1tg.com.cn All Rights Reserved.糖果站长网

站长:xwei067#foxmail.com(请把#换成@)