const
使用const关键字声明变量还是声明参数,其目的都是为了告诉使用者这个变量或者参数的应用目的。合理地使用关键字const 可以使编译器有效地保护那些不希望被改变的变量或参数,防止其无意中被代码修改。所以使用const关键字可以避免一些不必要的错误。
1.使用const关键字修饰的变量可以认为有只读属性
const int a=10;
int b=0;
b=a; (正确)
a=b; (错误,编译错误,因为a具有只读属性)
2.使用const关键字修饰的变量,在声明时必须进行初始化
const int a=10;(正确)
const int a;(错误)
static
- 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(只初始化一次)。
- 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
- 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
volatile
因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化。
防止变量被编译器优化,系统总是重新从它所在的内存读取数据,而不是在缓存中读取。