define和sbit的区别 |
您所在的位置:网站首页 › bit和abit有什么区别 › define和sbit的区别 |
两者区别大了。 #define 就是通常说的宏定义,它可以将一个资源命名。我看到的有两类应用: 第一:将IO口换一个名字,如:#define LED P2 意思就是将P2口重新命名为LED; 第二:宏定义,将一个语句集合命名,例如:#define goto {ML1=1;ML2=0;MR1=1;MR2=0} sbit特殊功能寄存器的一个位的声明,如:sbit LED0=P2^0; 看看,完全没有共同之处吧。 #define是宏定义,是一个预编译指令。 如#define PI 3.14 在预编译阶段,会将PI替换为3.14 sbit是C51扩展的变量类型 一个在编译期替换,一个在运行期生效 首先,sbit led= P2,这个写法是错误的,虽然编译时不报错,但编译后执行程序时却是错误的。 sbit 是定义一个引脚的,注意,只是定义一个引脚,而 P2是一个并行口,有8个引脚,是不能sbit 来定义,可以用 sfr 定义。 #define 并不是定义引脚的,也不是定义并行口,只是一个宏替换,就是程序中的led 换成P2后再编译。 所以,sbit 和 #define根本就不是一回事,更谈不上什么替换了。 两者毫无关系。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |