標(biāo)題: 關(guān)于C語(yǔ)言#define與sbit 有什么區(qū)別?求大佬解惑 [打印本頁(yè)]

作者: linzib    時(shí)間: 2018-11-19 23:35
標(biāo)題: 關(guān)于C語(yǔ)言#define與sbit 有什么區(qū)別?求大佬解惑
#define與sbit 有什么區(qū)別?


作者: HC6800-ES-V2.0    時(shí)間: 2018-11-20 08:03
兩者區(qū)別大了。
#define 就是通常說的宏定義,它可以將一個(gè)資源命名。我看到的有兩類應(yīng)用:
第一:將IO口換一個(gè)名字,如:#define LED P2    意思就是將P2口重新命名為L(zhǎng)ED;
第二:宏定義,將一個(gè)語(yǔ)句集合命名,例如:#define goto {ML1=1;ML2=0;MR1=1;MR2=0}

sbit特殊功能寄存器的一個(gè)位的聲明,如:sbit LED0=P2^0;

看看,完全沒有共同之處吧。
作者: tingyuluo    時(shí)間: 2018-11-20 09:01
#define是宏定義,是一個(gè)預(yù)編譯指令。
如#define PI 3.14     在預(yù)編譯階段,會(huì)將PI替換為3.14

sbit是C51擴(kuò)展的變量類型
作者: hanlng    時(shí)間: 2018-11-20 09:09
一個(gè)在編譯期替換,一個(gè)在運(yùn)行期生效
作者: new_hand    時(shí)間: 2018-11-20 09:10
#define 是宏定義,c語(yǔ)言里的,可以在所有單片機(jī)里用,sbit只能在51 上用
作者: xiaoshan7748    時(shí)間: 2018-11-20 09:31
#define是預(yù)處理宏命令:一般C或C++語(yǔ)言源程序中允許用一個(gè)標(biāo)識(shí)符來表示一個(gè)字符串,稱為“宏”。被定義為“宏”的標(biāo)識(shí)符稱為“宏名”。在編譯預(yù)處理時(shí),對(duì)程序中所有出現(xiàn)的“宏名”,都用宏定義中的字符串去代換,這稱為“宏代換”或“宏展開”。宏定義是由源程序中的宏定義命令完成的。宏代換是由預(yù)處理程序自動(dòng)完成的。
sbit是定義特殊功能寄存器的位變量




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1