volatile关键字修饰的变量,在程序执行的时候,不会从寄存器中读取,而是从内存中读取。在编译的时候编译器开启了优化,在使用volatile 关键字修饰后,就不会被优化。
举例:
#include <stdio.h>
#include <signal.h>
volatile int flag=0;
void handler(int sig)
{
flag=1;
printf("flag被设置为了1\n");
}
int main()
{
signal(2,handler);
while(!flag);
printf("程序运行到了这里\n");
}
2386

被折叠的 条评论
为什么被折叠?



