本帖最后由 john_lee 于 2012-8-2 13:08 编辑
貌似大家对 volatile 的理解都很到位,那么来看几个问题吧:- // 例程1
- int baz;
- int qux;
- void foo()
- {
- while (baz) {
- if (--qux == 0)
- break;
- }
- }
- ----------------------
- // 例程2
- int baz;
- int bar();
- void foo()
- {
- while (baz) {
- if (bar() == 0)
- break;
- }
- }
复制代码 在例程 1 和例程 2 中的 baz 变量会在中断服务例程中修改,那么 baz 是否需要加上volatile修饰?
|