1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7577|回復: 5
收起左側

關于C語言#define與sbit 有什么區別?求大佬解惑

[復制鏈接]
ID:429602 發表于 2018-11-19 23:35 | 顯示全部樓層 |閱讀模式
#define與sbit 有什么區別?

回復

使用道具 舉報

ID:164602 發表于 2018-11-20 08:03 | 顯示全部樓層
兩者區別大了。
#define 就是通常說的宏定義,它可以將一個資源命名。我看到的有兩類應用:
第一:將IO口換一個名字,如:#define LED P2    意思就是將P2口重新命名為LED;
第二:宏定義,將一個語句集合命名,例如:#define goto {ML1=1;ML2=0;MR1=1;MR2=0}

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

看看,完全沒有共同之處吧。
回復

使用道具 舉報

ID:429243 發表于 2018-11-20 09:01 | 顯示全部樓層
#define是宏定義,是一個預編譯指令。
如#define PI 3.14     在預編譯階段,會將PI替換為3.14

sbit是C51擴展的變量類型
回復

使用道具 舉報

ID:429665 發表于 2018-11-20 09:09 | 顯示全部樓層
一個在編譯期替換,一個在運行期生效
回復

使用道具 舉報

ID:246251 發表于 2018-11-20 09:10 | 顯示全部樓層
#define 是宏定義,c語言里的,可以在所有單片機里用,sbit只能在51 上用
回復

使用道具 舉報

ID:194257 發表于 2018-11-20 09:31 | 顯示全部樓層
#define是預處理宏命令:一般C或C++語言源程序中允許用一個標識符來表示一個字符串,稱為“宏”。被定義為“宏”的標識符稱為“宏名”。在編譯預處理時,對程序中所有出現的“宏名”,都用宏定義中的字符串去代換,這稱為“宏代換”或“宏展開”。宏定義是由源程序中的宏定義命令完成的。宏代換是由預處理程序自動完成的。
sbit是定義特殊功能寄存器的位變量
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表