(y))?(x):(y))#defineMIN(x,y)(((x)<(y))?(x):(y))得到一個field在結構體(struct)中的偏移量#defineFPOS(type,field)((dword)&((type*)0)->field)得到一個" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

宏定義

系統 1701 0
得到指定地址上的一個字節或字
#define MEM_B(x) (*((byte *)(x)))
#define MEM_W(x) (*((word *)(x)))

求最大值和最小值
#define MAX(x,y) (((x)>(y)) ? (x) : (y))
#define MIN(x,y) (((x) < (y)) ? (x) : (y))

得到一個field在結構體(struct)中的偏移量
#define FPOS(type,field) ((dword)&((type *)0)->field)

得到一個結構體中field所占用的字節數
#define FSIZ(type,field) sizeof(((type *)0)->field)

按照LSB格式把兩個字節轉化為一個Word
#define FLIPW(ray) ((((word)(ray)[0]) * 256) + (ray)[1])

按照LSB格式把一個Word轉化為兩個字節
#define FLOPW(ray,val) (ray)[0] = ((val)/256); (ray)[1] = ((val) & 0xFF)

得到一個變量的地址(word寬度)
#define B_PTR(var) ((byte *) (void *) &(var))
#define W_PTR(var) ((word *) (void *) &(var))

得到一個字的高位和低位字節
#define WORD_LO(xxx) ((byte) ((word)(xxx) & 255))
#define WORD_HI(xxx) ((byte) ((word)(xxx) >> )

返回一個比X大的最接近的8的倍數
#define RND8(x) ((((x) + 7)/8) *

將一個字母轉換為大寫
#define UPCASE(c) (((c)>='a' && (c) <= 'z') ? ((c) - 0x20) : (c))

判斷字符是不是10進值的數字
#define DECCHK(c) ((c)>='0' && (c)<='9')

判斷字符是不是16進值的數字
#define HEXCHK(c) (((c) >= '0' && (c)<='9') ((c)>='A' && (c)<= 'F') \
((c)>='a' && (c)<='f'))

防止溢出的一個方法
#define INC_SAT(val) (val=((val)+1>(val)) ? (val)+1 : (val))

返回數組元素的個數
#define ARR_SIZE(a) (sizeof((a))/sizeof((a[0])))

返回一個無符號數n尾的值
MOD_BY_POWER_OF_TWO(X,n)=X%(2^n)
#define MOD_BY_POWER_OF_TWO( val, mod_by ) ((dword)(val) & (dword)((mod_by)-1))

對于IO空間映射在存儲空間的結構,輸入輸出處理
#define inp(port) (*((volatile byte *)(port)))
#define inpw(port) (*((volatile word *)(port)))
#define inpdw(port) (*((volatile dword *)(port)))
#define outp(port,val) (*((volatile byte *)(port))=((byte)(val)))
#define outpw(port, val) (*((volatile word *)(port))=((word)(val)))
#define outpdw(port, val) (*((volatile dword *)(port))=((dword)(val)))

宏定義


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 漳平市| 德州市| 揭西县| 敦煌市| 永泰县| 枝江市| 四子王旗| 安乡县| 黄石市| 阿克陶县| 通州区| 永清县| 灵宝市| 安阳市| 徐汇区| 巨鹿县| 油尖旺区| 云安县| 岫岩| 商都县| 黄大仙区| 永修县| 房产| 潜山县| 彩票| 涞源县| 罗源县| 青神县| 班戈县| 海林市| 鹿邑县| 原阳县| 砀山县| 吉林省| 绵阳市| 栖霞市| 祁东县| 商都县| 北京市| 邛崃市| 丹东市|