关键字
1. const 关键字
c语言中:
- 1.修饰变量 不能改变变量的值
- 2.修饰指针
-
- 3种方式:
(1):const 在 * 号前,不能通过指针改变目标的值
(2):const 在 * 号后,不允许改变指针指的值,即不能改变指针的指向
(3):* 号前后都有cont 修饰时,既不能改变指针指向的值,也不能改变指针的指向
- 3种方式:
c++中:
除了有c语言中的用法,在类的用法:
- 1.修饰变量 其值不能被修改 只能通过构造函数的初始化列表初始化
- 2.修饰成员方法 不能通过该方法改变类对象(指修改对象的成员变量或调用非const方法)
- 3.修饰对象(只读对象),不能修改对象
2. static 关键字
C语言中:
- 1.修饰全局变量,改变其作用域,限定其只能在本文件中使用 - 2.修饰局部变量,改变其生命周期,直到程序结束才消失
- 3.修饰函数,限定其不能被其他文件引用,只在本文件中使用
c++中:
除了C中的用法,还有,在类中的使用:
- 1 static 成员变量,只能通过类名加作用域访问(::)
- 2 static 成员方法 也属于是类的成员,通常通过类名加作用域访问符(::)来访问,也能通过对象来访问。
3.extern 关键字
c语言中:
- 被extern 修饰的变量或者函数可被其他文件引用
c++:
- 语言连接 声明 如:在c++中引用c文件的方法,就在c++中注明:extern “C” <调用的函数>
4.volatile 关键字
- 易改变的
- volatile总是与优化有关
不会在两个操作之间把volatile变量缓存在寄存器中。在多任务、中断、甚至setjmp环境下,变量可能被其他的程序改变,编译器自己无法知道,volatile就是告诉编译器这种情况。
一般说来,volatile用在如下的几个地方:
1、中断服务程序中修改的供其它程序检测的变量需要加volatile;
2、多任务环境下各任务间共享的标志应该加volatile;
3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;
另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。