全局变量的地址 应该 始终 不变的。 可是 程序中一个全局变量的地址 在执行了 一个函数 后 就 变成 oxFFFFFFFF了。 而这个函数 并没有 使用这个全局变量。 这到底是什么原因?? 我用的 编译器 是 IAR6.7
RE:为什么全局变量的地址被改成 0xffffffff?
RE:为什么全局变量的地址被改成 0xffffffff?
楼主把代码贴上来
RE:为什么全局变量的地址被改成 0xffffffff?
TheFindPPSInteval.HaveJustSetSynSignalFlag=2;
DOWNLOAD_INIT(); //下载本机初始信息
TempAddress=(unsigned int )(&(TheFindPPSInteval));
TheFindPPSInteval.HaveJustSetSynSignalFlag=0;
这就是部分代码。应该没啥问题。关键是 去掉程序的几乎是任意的小函数 ,代码就正确了
在DownLoad_init();函数前面 TempAddress得到的地址就是 正确=0x20011d88;
执行DownLoad_init();函数 后 TempAddress得到的地址就是=0xffffffff;.
下面的是反汇编的截图
RE:为什么全局变量的地址被改成 0xffffffff?
RE:为什么全局变量的地址被改成 0xffffffff?