当前位置: 首页 > news >正文

【C++】2.2.2 变量声明和定义的关系

因为在生活中,可能需要不同的人编写不同的文件,或者一段程序需要拆分成很多不同的模块,可能一个文件中需要用到另一个文件中的变量。这就需要分离式编译,因此C++使用分离式机制,将声明(declaration)和定义区分开来。

一个文件如果使用在别的文件中定义的变量,就在该文件中就必须包含对该变量的声明。

变量声明规定了变量的类型和名字,而定义在规定变量类型和名字的同时,还会申请存储空间,定义还可能会给变量初始化。


int i; //是未显式初始化的定义

extern int i; //声明

int i = 0; //定义

extern int i = 0; //定义

int fun()
{
    extern int i = 0; //错误
    return 0;
}

因此,如果想声明一个变量而不是定义他,可以用extern关键字标记。最好不要给extern标记的变量赋初始值,这样会抵消它的作用,会让这个变量变成定义。另外,也不要在函数体内部对extern 标记的变量初始化。

变量只能被定义一次,但是可以被声明多次。

http://www.dtcms.com/a/50842.html

相关文章:

  • devDependencies和dependencies的区别
  • 12、算法
  • 实时语义分割之FarSeeNet(2020)模型解析代码复现及滑坡检测实战
  • Linux----网络通信
  • WPS AI+office-ai的安装、使用
  • Linux查看TP6 command定时任务并重启
  • 一、Prometheus架构
  • table 拖拽移动
  • 广域互联网关键技术详解(GRE/LSTP/IPsec/NAT/SAC/SPR)
  • 文件上传复现
  • Office 2021 Mac Office办公
  • 【银河麒麟高级服务器操作系统实际案例分享】数据库资源重启现象分析及处理全过程
  • HTML5+CSS3+JS小实例:带缩略图的焦点图
  • vue组合式API中prop
  • 深入 Vue.js 组件开发:从基础到实践
  • 《张一鸣,创业心路与算法思维》
  • 准确--Centos最小化安装通过命令去修改ip和dns
  • 本地部署Dify及避坑指南
  • 【powerjob】 powerjobserver注册服务IP错误
  • uniapp+vue3搭建项目
  • ESP32-P4 支持哪些 RISC-V 汇编指令?
  • 前缀和矩阵
  • 人工智能技术的广阔前景
  • verilog 基本语法结构与定义
  • Python递归进阶——科赫雪花
  • localStorage中的数据变化时,如何监听这些变化
  • 20250304vue-事件处理
  • JavaScript 编译原理
  • SQL AND OR 操作符详解
  • CSS—重绘与重排:10秒掌握重绘与重排