keil下函数内变量不能释放?

玉怀一捧雪 2015-01-04 12:46:20
最近碰到个问题!

void LED(void)
{
unsigned char i;
}
void LCD(void)
{
char i;
}

调用完LED后调用LCD,发现i的类型还是unsigned char 。计算不能得到负数,我很奇怪。函数内的变量不是调用完后就会释放的吗。搞不懂,是不是被keil编译器优化了?
...全文
211 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fly 100% 2015-01-05
你在哪里发现i不能负数的 ?
回复
zhxianbin 2015-01-04
不明白你怎么发现 i 的类型变化没有的,不要动不动就怀疑编译器,首先检查自己的代码,这是分析问题的常规思路,否则多是浪费时间
回复
sprawling 2015-01-04
看一下你的全局变量里面是不是还有一个叫i的.
回复
woshi_ziyu 2015-01-04
unsigned char i; 这个i的作用域只在LED函数里面 char i;的作用域只在LCD里面 运行完LED之后i会被自动释放的。计算不能得到负数,应该不是这个引起的。可以查看一下i的内存地址 ———————————————————————————————— 我参加了 CSDN 2014 博客之星大赛,请大家多多支持,投票网址如下: http://vote.blog.csdn.net/blogstar2014/details?username=woshi_ziyu#content
回复
相关推荐
发帖
单片机/工控
创建于2007-09-28

2.6w+

社区成员

硬件/嵌入开发 单片机/工控
申请成为版主
帖子事件
创建了帖子
2015-01-04 12:46
社区公告
暂无公告