volatile 是个关键字。在一个变量前加上这个关键字,表示的含义来是告诉编译器在编译的时候不要优化掉这个变量,因为一般的编译器都有优化选项,某些优化过程就会把一些变量优自化掉。这个在嵌入式系统中很重要。
比如说你要在某个PROT不停的读取数据,而且这个PORT的数据时实时更新的,那么你就要在你的变量前面加上volatile ,否则编译器很有可能就只读取一遍,以后都不读取仍然使用上一个值 例如 int ValueRead; ValueRead = PORTB 这样的话重复读就会被优化zd掉,要volatile int ValueRead; ValueRead = PORTB 这样就不会被优化了。