C++ :变量声明、定义【一个变量“声明”必须满足两个条件, 否则就是定义:①必须使用 extern;②不能为变量赋予初始值;】
2023-09-27 14:20:39 时间
根据 cpp 标准的规定, 一个变量声明必须满足两个条件, 否则就是定义:
- 必须使用 extern;
- 不能为变量赋予初始值;
一个变量 / 函数可以被多处声明, 但是只能定义在一处;
是定义还是声明与其位于
header file
还是implementation file
无关.
根据以上规定, 我们可以有如下的结论:
- extern int a; // 声明
- int a; // 定义
- int a = 0; // 定义
- extern int a = 0; // 定义
许多程序员对定义变量和声明变量混淆不清, 定义变量和声明变量的区别在于:
- 定义会产生内存分配的操作, 是汇编阶段的概念;
- 声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量.
相关文章
- 从 C++ 走向 rust(六):泛型变量赋值问题
- 【C/C++开发】C++实现简单的线程池
- C++-Cmake指令:set_target_properties【设置目标的一些属性来改变它们构建的方式】【用来设置输出的名称,对于动态库,还可以用来指定动态库版本和API版本】
- C++:CMake常用变量【CMAKE_CXX_FLAGS、CMAKE_BUILD_TYPE、×_BINARY_DIR】
- C++-头文件书写规范(一):只能存在变量、函数的声明, 而不能放定义【例外:①可以写static、const对象的定义;②可以写内联函数(inline)的定义;③可以写类(class)的定义】
- C/C++:指针、引用【指针:指针是一个变量,只不过这个变量中存储的是一个地址,指向内存中的一个单元】【引用:引用和原变量是同一个东西,只不过是原变量的一个别名】
- C++中的数组问题
- C++11-列表初始化/变量类型推导/范围for/final&override/默认成员函数控制
- [c++] Lvalues and Rvalues
- 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍
- C++不同类型变量参与运算时的规则
- 使用cocos2d-x的方式来将C++类注册进Lua环境详解
- C++中简化类型声明的方式
- C++ 返回值优化RVO与NRVO
- (Windbg调试七)c++内存泄漏问题定位
- c++ new长度为0的数组
- c++类模板中静态成员变量的声明定义
- C++ 变量的引用 &
- Ubuntu 安装 Eclipse C/C++开发环境