|
3.13 volatile 限定修饰符
当一个对象的值可能会在编译器的控制或监测之外被改变时例如一个被系统时钟更新
的变量那么该对象应该声明成volatile 因此编译器执行的某些例行优化行为不能应用在
已指定为volatile 的对象上
volatile 限定修饰符的用法同const 非常相似――都是作为类型的附加修饰符例如
volatile int display_register;
volatile Task *curr_task;
volatile int ixa[ max_size ];
volatile Screen bitmap_buf;
display_register 是一个int 型的volatile 对象curr_task 是一个指向volatile 的Task 类对
象的指针ixa 是一个volatile 的整型数组数组的每个元素都被认为是volatile 的bitmap_buf
是一个volatile 的Screen 类对象它的每个数据成员都被视为volatile 的
volatile 修饰符的主要目的是提示编译器该对象的值可能在编译器未监测到的情况下被
改变因此编译器不能武断地对引用这些对象的代码作优化处理
这是网上搜到的. |
|