本帖最后由 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修饰? |