关于c语言宏定义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于c语言宏定义相关的知识,希望对你有一定的参考价值。
typedef unsigned char BYTE;
typedef unsigned short WORD;
意思是可以用BYTE替代unsigned char 对么
但是后面更不明白了
#define LOBYTE(w) ((BYTE)(WORD)(w))
#define HIBYTE(w) ((BYTE)((WORD)(w) >> 8))
w是哪里来的不需要事先定义么,LOBYTE(w)代表这什么意思
BYTE WORD为什么这么用
typedef unsigned short WORD;
意思是可以用BYTE替代unsigned char
是对的,BYTE,WORD是新的变量类型
#define LOBYTE(w) ((BYTE)(WORD)(w))
这里是宏定义。类似函数定义,w作为参数,是文本。在编译时把LOBYTE(w)变为 ((BYTE)(WORD)(w))。比如输入:
WORD dat;
BYTE b ;
b=LOBYTE(dat);
编译时会替换为b=((BYTE)(WORD)(dat));意思是得到低字节部分。
同理HIBYTE得到高字节部分 参考技术A ypedef unsigned char BYTE;
typedef unsigned short WORD;
意思是可以用BYTE替代unsigned char
是对的,BYTE,WORD是新的变量类 参考技术B LOBYTE(w) 是宏定义函数,w在函数体指明了。
LOBYTE(w)是取w的低八位, word是指明w是word类型。
以上是关于关于c语言宏定义的主要内容,如果未能解决你的问题,请参考以下文章