导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请问:定义的全局变量的值为什么会被其他变量覆盖[Heaven]

 *第10185篇: 请问:定义的全局变量的值为什么会被其他变量覆盖

  
楼 主:Heaven 2003年4月11日15:56
 请问:定义的全局变量的值为什么会被其他变量覆盖
请问各位高手:我的Keil C程序中,定义的全局变量的值为什么会被其他变量覆盖?

由于程序较大,内部数据空间不够,很多变量都定义在外部数据空间,在程序中定义以下几个全局变量(还有其他很多全局变量未列出):
uchar xdata *xdata str[10];
uchar xdata *xdata var_ip[10];
uchar xdata *xdata var_p[10];

在main()函数中先给str赋值,经检查输出没问题,再给var_ip赋值,输出。如下:
for(i=0;i  <10;i++)
{
 str[i]赋值;//字符串.
 输出str[i];  //输出没问题
 var_ip[i]赋值;//字符串 
 输出var_ip; //输出也没问题
}

可是在for语句之后再用for语句输出各个str就有问题了。
所有的str[i]都变成了var_ip[9]的值,请问这是为什么?全局变量的值怎么会被覆盖呢?


  
2楼:Heaven 2003年4月12日21:47
 这么多高手,为什么没人回我的问题?
  
3楼:guest 2003年4月16日15:31
 因为呢定义的其他变量比如数组使用时超出了
因为呢定义的其他变量比如数组使用时超出了定义的范围,检查一下编译结果中symble的地址,看看它前面的数组的使用情况

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:pdg如何打开

[下一篇主题]:招聘