C++变量
来源:互联网 发布:视频展示台软件 编辑:程序博客网 时间:2024/06/05 11:07
1. 变量的链接类型:
a. 外部链接:变量位于所有函数外部
b. 内部链接:用static修饰且位于所有函数外部的变量
c. 无链接:用static修饰且位于函数内部的变量
注:链接性味内部的变量只能在其所属的文件中使用;常规变量都具有外部链接性;链接性为外部的变量可以在其它文件中使用。
2. C++单定义规则:变量只能一次定义。但是,在C++中,在每个使用外部变量的文件中,都必须声明它。为满足这种需求,C++提供了两种变量声明:
a. 定义声明:简称定义(definition),它给变量分配存储空间;
b. 引用声明:简称声明(declaration),它不给变量分配空间,因为它引用已有的变量。
注:引用声明使用关键字extern .且不能进行初始化;否则,声明为定义,导致分配存储空间。
3. 在多个文件中使用外部变量
如果在多个文件中使用外部变量,只需在一个文件中包含变量的定义(单定义规则),但在使用改变量的其他所有文件中,都必须使用extern声明他。
4. 函数中声明的一个变量与全局变量同名,这种声明将被视为一个自动变量的定义,当程序执行自动变量所属的函数时,该变量位于作用域内;自动变量将隐藏同名的全局变量。
5. 如果要在其他文件中使用相同的名称表示其他变量:
例:
//file01.cpp
int error = 21;
//file02.cpp
int error = 12;
注:这种做法将失败,违反了单定义原则。
6. 如果文件定义了一个静态外部变量,其名称与另一个文件中声明的常规外部变量相同,则在该文件中,静态变量将隐藏常规外部变量。
实例2:
//file03.cpp
int error = 23;
// file04.cpp
static int error = 26;
...... .....
注:这里没有违反规则,因为关键字static指出标识符error 的链接性为内部,因此并非提供外部定义。
7. 内联函数
定义:内联函数的编译代码与其他程序代码“内联”起来,也就是说,编译器将使用相应的函数代码替换函数调用。对于内联代码,程序无需跳到另一个位置执行代码,然后再跳回来。因此,内联函数的运行速度比常规函数稍快,但代价是需要占用更多的内存。
b. 内联函数的使用选择
如果执行函数代码的时间比处理函数调用机制的时间长,则节省的时间将只占整个过程的很小一部分。如果代码的执行时间很短,则内联调用就可以节省非内联调用使用的大部分时间。另一方面,由于这个过程相当快,因此尽管节省了该过程的大部分时间,但节省的时间绝对值并不大,除非该函数被经常调用。
c. 内联函数的使用过程
~1~ 在函数声明前加上关键字inline
~2~ 在函数定义前加上关键字inline
注:通常的做法是省略原型,将整个定义放在本应提供原型的地方;内联函数不能递归。
- C 变量
- c 变量
- C++:变量
- C:变量
- 【c++】变量
- C 变量
- C#---变量
- C 变量
- 【C#】变量
- 【C/C++】成员变量
- java变量转C变量
- [C学习]C中的变量
- [C学习]C中的变量(?)
- C++/C变量命名规则
- C语言变量总结
- C/C++变量申明
- C语言static变量
- C语言变量类型
- CodeForces 831C Jury Marks(stl)
- xss攻击防御
- weblogic配置
- [C#]Where关键词的用法
- sql server 的T-SQL 学习笔记(二)--- 解决union select插入多行数据过滤数据(union all)
- C++变量
- Greenplum 扩展 segment个数
- 机器学习基石 4.1 Learning is Impossible?
- pcbsch标识符顶部有横线的属性写法
- mysql的join操作
- eclipse中jrebel安装+破解+配置
- leetcode(9) Palindrome Number
- matlab之改变画图游标显示数据的精度和内容
- [ZJOI2007]时态同步