Volatile/Static/Const/mutable/extern

C/C++关键字

C/C++ Key Words: Volatile/Static/Const/mutable/extern

Volatile

表明某个变量可能在外部被改变,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不使用保存在寄存器里的备份。Intcharlong,也可用于结构体和类(所有成员)。

一个参数可以既是const又是volatilevolatile表示它会被意想不到的改变,const表示程序不应该试图去修改它。

 

Static

C

1. 改变函数和变量的作用域

告诉编译器自己仅仅在作用域范围内可见。Static修饰全局变量时,它改变了全局变量的作用域,使其不能被extern外部调用,但是没有改变存放位置,还是在全局静态区。

2. 改变变量的存储空间和持久性

变量会被放在程序的全局存储区,这样可以在下一次调用时保持原来的赋值。

3. 若全局变量仅在单个文件中访问,使用static变量;当全局变量仅在函数中使用,使用static变量;设计和使用全局变量、静态变量时,需要考虑重入问题。

C++

静态成员变量隶属于类,为所有对象共享。静态成员变量在类外进行初始化,初始化使用作用域运算符来标明它的所属类,所以静态成员变量是类的成员,而不是对象的成员。静态成员变量是静态存储,必须对它初始化。

静态成员函数是类的成员,而不是对象的成员。静态成员函数可以引用静态成员变量,不能直接引用类中说明的非静态成员。

 

Const

Const意味着只读,告知代码阅读者该变量只读;为优化器优化提供更多信息;使代码更加健壮。

Const int a             //常整型数

Int const a              //常整型数  

Const int* a           //指针可变,变量不可变

Int * const a           //指针不可变,变量可变

Int const * const a  //指针变量都不可变

1. 修饰函数输入参数

2. 修饰函数返回值

3. 修饰成员函数:Const成员变量声明时,const放在函数声明的后面,表示该成员函数不修改对象,但可以修改mutable修饰的成员变量。

 

Mutable

修饰需要在const成员函数中修改的变量。

 

Extern

  1. 修饰函数和变量,表示它们是外部变量,可能不在当前的文件中。
  2. extern “c” {}:c++引入了重载和多态等新特性,编译方式和c大有不同。告知连接器采用C的方式连接其中包含的程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值