本帖最后由 shoecat 于 2011-3-13 10:16 编辑
我用的是stm8的芯片,通过如下方式定义了一个全局变量:data_tmp;
unsigned char data_tmp = 0x09;
void data_tmp_senddata(void)
{
data_tmp = 0x0A;//在此设置了个断点
}
void main(void)
{
//....
data_tmp_senddata();
open_speaker();
data_tmp_senddata();
}
我在data_tmp_senddata函数中设置了个断点,发现:进入时都会对data_tmp赋初值:0x09。即:data_tmp的值变化过程如下:0x09(全局初值),0x0A(执行完data_tmp = 0x0A),0x09(再次进入data_tmp_senddata函数),0x0A(再次执行完data_tmp = 0x0A)
谁知道是什么原因呢?全局变量不是这么用的吗? |