文章转自微信公众号:coder梁(id:coder_lt)
当我们使用static
关键字,将变量的作用于限制在整个文件时,该变量的链接性为内部链接性。在多文件的程序当中,内部链接性和外部链接性是有所差别的,内部链接性的变量只能在当前文件使用,而常规外部变量是可以跨文件使用的。
但这就带来了一个问题,如果我们在两个文件当中都定义了同一个全局变量,会发生什么呢?
关于节约用水的手抄报// file1int error = 20;// file2int error = 5;
答案是:这样的做法会报错,因为它违反了单定义规则。
但是我们可以将其中一个变量通过s文章体裁tatic
关键字变成静态内部变量,那么在该文件当中,静态变量将隐藏常规的外部变量:
// f高中学业水平ile1int error = 20;// file2static int error = 5;
这样做的好处是,当我们确定我们某些变量的使用范围只有当前文件的时候,我们可以使用static
关键字来防止它和一些其他文件当中的外部变量相冲突。
无链接性的变量我们在之前的文章当中也曾经提到过,其实就是在代码块当中使用stati打靶归来 歌词c
关键字创建的。
在代码块当中创建的静态变量会和代码块的生命周期脱钩,虽然它只能在代码块运行时使用,但它的结果会一直存在,并不会随着代码块的执行结束而消亡。
void test() { static int ret = 0; ret++; cout << ret << endl;}int main() { test(); test(); return 0;}
这段代码的运行之后将会得到1和2,因为ret是一个无链接性的静态变量,它会一直存在。所以当test运行一次之后,它的结果会变成1,并被保存下来。
主要应用场景就是我们希望有些变量能够随着代码块的运行有所沉淀,记录下中途的状态或者是中间结果。有了静态变量就可以不必使用全局变量了。
到此这篇关于easyc++
内部链接性和无链接性的文章就介绍到这了,更多相关c++内部链接性和无链接性内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 03:37:08,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/4d5f3024ab639ba0988bf072b74313ad.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:EasyC++内部链接性和无链接性.doc
本文 PDF 下载地址:EasyC++内部链接性和无链接性.pdf
留言与评论(共有 0 条评论) |