volatile意为易变
加在变量前,告诉编译器这是一个值可能会发生变化的变量,不要进行优化
优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面读
这就造成了如寄存器值之类发生变化但没有体现在代码上的情况下,仍取k中的值则会发生错误
参考:https://blog.csdn.net/msrgr/article/details/85321293
标签:变量,发生变化,代码,编译器,volatile,优化 From: https://www.cnblogs.com/toriyung/p/16849352.html