独闷闷网

 找回密码
 立即注册
搜索
查看: 2307|回复: 0
收起左侧

[原创] 除了51单片机外,大部分的单片机都不支持位变量bit。为了移植,建议用char。

[复制链接]
发表于 2014-10-13 12:45:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
威-广州:
我发现在其他C文件定义bit变量出错,main.c就没事,stm32.

伟-肇庆:
你在stm32定义bit变量????没见过在stm32定义位变量的.stm32要实现,一般是定义一个字节,位逻辑操作实现,不能直接定义位变量.

威-广州:
我刚刚从百度搜索到的知识点:KEIL51使用的不是标准C,而是在C基础上针对51单片机的硬件做了修改的C51。因为51单片机对某些地址可以位寻址,并且要节约每一个资源,所以才有bit这个类型。
ARM的资源比51多得多,所以没有对BIT做特别的处理,你可以把普通的字符型变量作为布尔型使用。

伟-肇庆:
51单片机的位变量是硬件实现的。

鸿哥-深圳:
是的。我的印象中,除了51单片机的C51编译器外,其它大部分单片机编译器都不支持位变量。比如PIC单片机就是不支持位变量的。所以我的程序从来不用位变量,哪怕是51单片机我也不用位变量,哪怕只有两种状态的标志我也不用位变量。我直接用一个字节的char替代位变量,这样方便程序移植在不同的单片机里。


乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-4-19 05:35 , Processed in 0.204456 second(s), 18 queries .

快速回复 返回顶部 返回列表