C/C++中static与extern的关键作用与区别
148 浏览量
更新于2024-09-03
收藏 74KB PDF 举报
"本文主要介绍了C/C++编程语言中的static和extern关键字,它们分别用于局部变量和全局变量的管理,以及函数的可见性控制。static关键字可以扩展局部变量的生存期,限制全局变量的作用域,还可以将函数声明为内部函数。而extern关键字则用于扩展全局变量的作用域,使得在其他文件中可以访问。"
在C/C++编程中,static和extern是两个非常重要的关键字,它们分别负责管理变量和函数的生命周期与作用域。
首先,static关键字有两个主要用途:
1. 对于局部变量,当在函数内部使用static修饰变量时,该变量的生命周期会从函数首次调用时开始,直到程序结束时才销毁。这意味着每次调用函数,局部静态变量的值都会保留,而不是像普通局部变量那样在函数结束时丢失。然而,即使生命周期得到扩展,其作用域仍局限于定义它的函数内部。
2. 对于全局变量,static关键字可以限制其作用域,使其仅在定义它的源文件内部可见,防止其他文件中的同名全局变量造成冲突。这样的全局变量称为静态全局变量,它们不会被链接器视为外部定义,因此不能在其他文件中直接访问。
extern关键字主要用于管理全局变量和外部函数的可见性:
1. 当一个全局变量未在当前文件中定义,而是希望在其他文件中使用它时,可以在当前文件中使用extern关键字声明该变量,这样就可以扩展其作用域,使得该变量在其他文件中可见。不过,需要注意的是,extern声明并不创建变量,它只是告诉编译器变量是在其他地方定义的。
2. 对于函数,如果函数声明为extern,表示它是外部函数,可以在其他文件中被调用。通常,函数默认就是外部函数,但若在定义时添加static关键字,该函数就会变成内部函数或静态函数,只能在定义它的源文件内部使用,不会在其他文件中可见。
static和extern是C/C++中控制作用域和链接性的关键工具,它们帮助程序员管理代码的模块化和封装,确保了不同文件间的变量和函数调用的正确性。正确使用这两个关键字有助于编写更清晰、可维护的代码。在编写多文件项目时,理解并熟练应用static和extern是至关重要的。
2020-09-05 上传
2020-12-31 上传
2020-12-25 上传
2020-09-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38706055
- 粉丝: 5
- 资源: 908
最新资源
- PyPI 官网下载 | foliantcontrib.graphviz-1.0.2.tar.gz
- Boring-Lecture
- gpgLabs:应用地球物理学的教程和示例
- AitechTest-Node-and-Mysql:使用节点和mysql的程序
- libresmartphone:此页面包含在开放式硬件智能手机(libresmartphone)中使用的软件
- franapp
- acinar-analysis-manuscript
- QHeatMap:在Qt中生成热图
- workout_share
- opencv读摄像头上传到前端.rar
- pandas_gdc_agent-0.0.1.tar.gz
- 准备好锻炼学员
- web2icq-开源
- 【IT十八掌徐培成】Java基础第02天-01.java关键字.zip
- SYST17796ABFGM:集团项目回购
- Anti-bar-crx插件