Keil C51 中 volatile 与 xdata 关键词先后顺序的问题
xdata volatile uint8_t temp = 0; //不报错
volatile xdata uint8_t temp = 0; //报错
xdata 表示把变量声明在外部 RAM 中;
volatile 表示不优化改变量,每次写入时,都是真实地写入;
当我们定义一个在外部 RAM中的变量,同时又要求不优化该变量时,就需要联合这两个关键词。
xdata volatile uint8_t temp = 0; //不报错
volatile xdata uint8_t temp = 0; //报错
xdata 表示把变量声明在外部 RAM 中;
volatile 表示不优化改变量,每次写入时,都是真实地写入;
当我们定义一个在外部 RAM中的变量,同时又要求不优化该变量时,就需要联合这两个关键词。