1. 声明volatile对象
Volatile字面意思是“易于挥发的”。来描述一个变量时,意味着给该变量赋值(写入)之后,马上再读取,写入的值与读取的值可能不一样,所以它称为“易于挥发的”。
在以下3种情况下需要将对象声明为volatile:
l 共享访问,即在多任务环境中几个任务共享一个对象
l 触发访问,例如当发生某个访问时会影响存储器映像SFR的内容
l 修正访问,例如当对象内容以编译器不可知的方式发生改变
示例:
char volatile a;
a = 5;
a += 6;
对声明为volatile对象的访问需要遵循以下原则:
1) 所有访问均为保护方式;
2) 所有访问均为完全访问,即访问整个对象;
3) 所有访问均按抽象机给定的顺序进行;
4) 所有访问均为非中断方式访问;
2. 声明const对象
Const限定符指明一个数据对象(无论是直接访问还是通过指针访问)是不可改写的。一个指向声明为const数据对象的指针,既可以指向常量对象,也可以指向非常量对象。应尽可能地使用声明为const的指针(const pointer),这可以改善编译器对生成代码的优化,同时可以减少由于错误修改数据而导致应用程序崩溃的风险。
声明为const的静态和全局对象被放置在ROM中。
给大家一些参考,如有不对,还请楼主多多指教~~