define和sbit的区别

您所在的位置:网站首页 bit和abit有什么区别 define和sbit的区别

define和sbit的区别

#define和sbit的区别| 来源: 网络整理| 查看: 265

两者区别大了。 #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