jianhong_wu 发表于 2014-10-13 12:45:06

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

威-广州:
我发现在其他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替代位变量,这样方便程序移植在不同的单片机里。


页: [1]
查看完整版本: 除了51单片机外,大部分的单片机都不支持位变量bit。为了移植,建议用char。