我知道volatile关键字可以防止编译器优化变量并在每次读取时从内存中读取。除了内存映射寄存器,还有哪些情况需要使用volatile?如果使用符合标准的编译器,在这两种情况下是否必须将test_var声明为volatile?
1.
在file1.c文件中
int test_var=100;
void func1()
{
test_var++;
}
在file2.c文件中
extern int test_var;
void func2()
{
if(test_var==100)
{
....
}
}
2.
在file1.c文件中
int test_var=100;
void func1()
{
}
在file2.c文件中
extern int test_var;
void func2()
{
if(test_var==100)
{
....
}
}
extern
存储类,则编译器在优化读写该变量的能力方面受到限制。 - tofro