社区
C语言
帖子详情
keil C 里的中断服务函数里 局部变量是不是相当全局变量 能不能释放
hollandjzy
2010-03-19 08:43:13
keil C 里的中断服务函数里 局部变量是不是相当全局变量 能不能释放
...全文
595
10
打赏
收藏
keil C 里的中断服务函数里 局部变量是不是相当全局变量 能不能释放
keil C 里的中断服务函数里 局部变量是不是相当全局变量 能不能释放
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cy330206
2010-03-19
打赏
举报
回复
[Quote=引用 7 楼 hollandjzy 的回复:]
那我将int_test 如果放在 中断里 编译 (就像上面那个代码一样)和放在main里 编译 放在中断里编译的程序在DATA 区大
[/Quote]
????
cy330206
2010-03-19
打赏
举报
回复
[Quote=引用楼主 hollandjzy 的回复:]
keil C 里的中断服务函数里 局部变量是不是相当全局变量 能不能释放
[/Quote]
不是的,,局部变量就是局部变量不能当做全局变量来用的,会随着中断程序的推出,局部变量是会释放的
,,,
hollandjzy
2010-03-19
打赏
举报
回复
那我将int_test 如果放在 中断里 编译 (就像上面那个代码一样)和放在main里 编译 放在中断里编译的程序在DATA 区大
悠然红茶
2010-03-19
打赏
举报
回复
[Quote=引用 5 楼 hollandjzy 的回复:]
int_test 里面的局部变量 是不是受保护的?
[/Quote]
没看到受什么保护。
hollandjzy
2010-03-19
打赏
举报
回复
int_test 里面的局部变量 是不是受保护的?
用户 昵称
2010-03-19
打赏
举报
回复
int_test里面肯定不是全局变量。中断中的占据全局变量的位置,但是外部不能访问吧,没试过。
hollandjzy
2010-03-19
打赏
举报
回复
void INT1(void) interrupt 2
{
unsigned char a;
a=0;
int_test();
SFRPAGE = old_SFRPAGE;
}
void int_test()
{
unsigned char b;
b=1;
}
上面的两个代码中变量 a 和b是不是相当于全局变脸
悠然红茶
2010-03-19
打赏
举报
回复
应该确定是不是static变量,需要看到代码才好说。
用户 昵称
2010-03-19
打赏
举报
回复
俺脚着是这样的,这个变量占用的地址始终不变,但是外部不能访问,跟全局变量差不多。那应该上就不能释放了。
kevinyujm
2010-03-19
打赏
举报
回复
可以明确告诉你,a, b都是局部变量,不是全局变量,局部变量位于栈中,栈的内容是随着函数的执行而发生变化的。至于DATA区变大的问题,应该与变量无关,而与该函数是否是中断服务程序有关。你可以使用空函数来测试二者的区别。
C语言全局/
局部变量
这个工程
里
面的描述很简单。就是陈列了一个
全局变量
和一个
局部变量
。适合人群:刚开始C语言单片机编程的开发人员。对
函数
之间数据交互不太清楚的人。
keil
c51中变量 常量
函数
的定位
关于在
keil
c51中如何定位变量、常数和
函数
的位置
深入
KEIL
底层之__main
函数
详解
深入
KEIL
底层之__main
函数
详解
如何
keil
在c中调用a51汇编
函数
.doc
预备知识,在c语言中调用a51的
函数
,那么必须让写的
函数
得和c51编译的c
函数
一致的风格,也就是由c51编译的c文件中的
函数
的目标代码中 跟
函数
定义相关的部分是什么样子,我们要写一个让C语言调用的汇编a51
函数
也得是个什么样,而这可以通过阅读《Cx51 Compiler User's Guide》可以了解的哦。这篇文章是转载的,感谢原作者。
keil
对lib封装库反汇编成C语言
讲述如何将lib库反汇编成C,辛苦从网上收集而来的,仅供参考,版权归原作者所有
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章