在 28069的头文件中看到好多 extern volatile 这是什么意思 volatile代表什么
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
例如:
volatile unsigned char var;
void test(void)
{
a = var;
b = var;
……
}
如果不声明volatile,第二次读var的值,编译器将会使用第一次a = var;时获得的var值, 在这期间,编译器会假设var不会被外部中断、或者别的函数改变。
但是,实际上,如果var可能是寄存器值或者被中断程序和应用程序共享的全局变量,两次读取之间,var的值可能会被修改,如果不声明为volatile,则会得到一个旧的值。
如果对变量声明为volatile,则编译器不会对这个变量做任何假设。