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

怎样声明位变量?

怎样声明位变量?

请教,在cw中,怎样定义一个位变量啊?例如定义一个位变量i,在51系列中好象是sbit i;
那么在cw中是如何实现的呢?
这种c声明,应该是是参考于CW自带的对寄存器声明,以前我也是这么用声明的,但这样做有一个问题:
如果ram是0x0080~0x00ff,
自己在这里对一个变量进行绝对地址定义后,假如按照这方式定义flag @0x0080,如果主函数中有全局变量的话,CW编译的时候会从ram开始地址0x0080优先放置全局变量,这样的话就和flag地址重叠,引起程序混乱。

请问有其他的方式吗?
哦,看了下PRM,好象是这样理解的,在CW中堆栈的生长方向是向上的,开始地址紧跟全局变量后,且size默认是48字节,这样的话自己要定义的变量地址放在堆栈后就可以了。以前用的汇编编译环境堆栈是向下生长的,size也不定。有这样的不同。
返回列表