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

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

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

调用完LED后调用LCD,发现i的类型还是unsigned char 。计算不能得到负数,我很奇怪。函数内的变量不是调用完后就会释放的吗。搞不懂,是不是被keil编译器优化了?
...全文
360 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧