首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为什么局部变量建立不了?

为什么局部变量建立不了?

我的程序大概如下,去掉了一些端口操作。digit_data和digit_l调试的时候会出现:not allocated,编译的时候可以编译通过。定义成全局变量没有出现这样的提示 eecounter是32位,用dword定义 digit_list[]是数组 void Disp_com1(void){ word digit_data; word digit_l; digit_l = digit_list[eecounter/10000%10]; digit_data = digit_list[eecounter/1000000%10]; digit_data = (digit_data << 8) + digit_l; Txd_word(digit_data); }

[此贴子已经被作者于2005-6-1 14:56:03编辑过]

[此贴子已经被作者于2005-6-1 14:56:59编辑过]

[此贴子已经被作者于2005-6-1 15:03:07编辑过]

热爱电子技术,愿交天下好友
我想会不会是编译器自动优化掉了?但是结果不对啊
热爱电子技术,愿交天下好友
咦。我copy了你的程序,怎么没出错?
读了这么多年书,还是幼儿园比较好混
不是出错,而是在调试窗口里看不到局部变量,显示的是not allocated,不过我下午看过了,结果是正确的。所以我怀疑是被编译器优化掉了~~~
热爱电子技术,愿交天下好友
局部变量应该是放在堆栈里的,并不分配一个固定的RAM地址。
海纳百川  有容乃大
但是看不到局部变量的值很不方便啊~~
热爱电子技术,愿交天下好友
你调试的时候加上static关键字,调试完之后去掉不就行了,局部变量是看不到的
返回列表