这个程序有必要使用volatile变量吗?
小弟正在看BSP,遇到大量volatile,不解
程序如下:
void flush_cache()
{
volatile unsigned int i;
volatile unsigned int *a = (unsigned int*)0x80000000;
volatile unsigned int b;
for(i=0;i<2048;i++)
{
b = *a;
a++;
}
}
volatile是告诉编译程序,变量值有可能以未在程序中明确表达的方式改变。我知道a应该使用volatile,但i,b也定义成了volatile变量是什么原因呢?