一些关键字的注意点

2017-07-05  本文已影响11人  test158888

const

const 意味着"只读",下 的声明都是 么意思

const int a;
int const a;
const int *a;
int * const a;
int const * a const; 

volatile 。

答: 一个定义为 volatile的变量是说他可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值 。精确地说就是,优化q在用到这个变量时必须每次都重新地新读取这个变量的值, 而不是使用保存在寄存器的备份。

下面是volatile变量的几个例子 :
并发设备的硬件寄存器 (如:状态寄存器 )
一个中断服务子程序中会访问到的非自动动变量 (Non-automatic variables)
多线程应用中被多个任务共享的变量

static

1).函数体内 static 变量的作用范围为该函数体, 不同于 auto 变量 ,该变量的内存只被分配 一次, 因此其值在下次调用时仍维持上次的值;
2).在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; 3).在模块内的 static 函数只可被这一模块内的其它函数调用 ,这个函数的使用范围被限制在声明它的模块内;
4).在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝 ;
5).在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因此只能访问类的 static 成员变量 。

上一篇下一篇

猜你喜欢

热点阅读