今天才了解volatile的功能, 以前只知道它修饰变量的, 让变量每次操作时都要从内存中读取, 而不使用寄存器来临时存储. 今天才知道还有这么一个超级好的功能!
能够修饰无返回值的函数, 如:
void have(void);
void volatile abc(void)
{
//do something
have();
}
int main(void)
{
abc();
return 0;
}
比如上面这个函数, 如果abc没有volatile修饰的话, 那么程序调用的过程是, main->abc->have 当have执行完了之后再返回: have->abc->main.然而加入了volatile的话, 调用的过程没有改变还是 main->abc->have, 但是返回的过程就改变了, 变成了have->main.
以后这个我是会多用的, 功能我还挺喜欢的.
能够修饰无返回值的函数, 如:
void have(void);
void volatile abc(void)
{
//do something
have();
}
int main(void)
{
abc();
return 0;
}
比如上面这个函数, 如果abc没有volatile修饰的话, 那么程序调用的过程是, main->abc->have 当have执行完了之后再返回: have->abc->main.然而加入了volatile的话, 调用的过程没有改变还是 main->abc->have, 但是返回的过程就改变了, 变成了have->main.
以后这个我是会多用的, 功能我还挺喜欢的.