登录
注册
登录
注册
学院
工具云
项目外包
技术会议
计算公式
资源
资讯
社区
文库
专题
项目
请
登录
后使用快捷导航
没有帐号?
立即注册
社区
›
研发信息&资源
›
研发应用
什么是bit和sbit?他们有什么区别?
才子
/
于 2013-3-14 13:57
/
2
/
1041
/
[复制链接]
[只看该作者]
[打印]
[上一主题]
[下一主题]
才子
积分
0
精华
0
学分
115
技术分
0
最后登录 2014-4-9
加为好友
发送消息
访问家园
动力与电气工程250
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
分享
淘帖
0
支持
0
反对
0
相关帖子
•
在用flotherm做热设计时,手机主板里面的含铜量与导热系数存在什么样的量化关系?还是只有经验值?
举报
使用道具
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
|
回复
共 2 个关于本帖的回复 最后回复于 2013-3-14 14:00
小强
积分
0
精华
0
学分
258
技术分
0
最后登录 2014-6-19
加为好友
发送消息
访问家园
个人资料
主题列表
发消息
沙发
小强
新来的
发表于 2013-3-14 14:00:17
|
只看该作者
bit和sbit都是C51扩展的变量类型。bit:编译时分配空间,是动态分配的,有编译器来指定内存地址。bit可以在外部或内部定义。sbit:只能在外部定义全局变量,是SFR(特殊功能寄存器)的bit,而SFR是系统指定的内存地址。sbit要在最外面定义,就是说必须定义成外部变量,sbit定义的是SFR(特殊功能寄存器)的bit。sbit更像是类型定义,不像是变量定义。
举报
使用道具
照妖镜
回复
支持
反对
流水落花
积分
0
精华
0
学分
165
技术分
0
最后登录 2014-3-30
加为好友
发送消息
访问家园
个人资料
主题列表
发消息
板凳
流水落花
新来的
发表于 2013-3-14 14:00:48
|
只看该作者
bit和int char之类的差不多,只不过char=8位, bit="1位而已",都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间,RAM+FLASH+扩展空间。bit只有0和1两种值,意义有点像Windows下VC中的BOOL。bit是编译器在的可寻址区分配的一个位变量,是不定的,不是绝对地址目标。sbit是对应可位寻址空间的一个位,可位寻址区:20H~2FH。一旦用了sbi xxx = REGE^6这样的定义,这个sbit量就确定地址了。sbit大部分是用在寄存器中的,方便对寄存器的某位进行操作的。sbit位寄存器是可位寻址的绝对地址目标,定义后编译器是不会改变位置的。所有可位寻址的位都可由sbit指定,这包括可位寻址区和SFR中的位。
举报
使用道具
照妖镜
回复
支持
反对
返回列表
B
Color
Image
Link
Quote
Code
Smilies
高级模式
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表主题
热门导读
回复
点评
评分
分享
关注我们
快速回复
快速发帖
返回顶部
返回列表
360网站安全检测平台
共 2 个关于本帖的回复 最后回复于 2013-3-14 14:00