全球旧事资料 分类
C语言宏定义技巧
201006160106写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含if
defCOMDEF_Hdefi
eCOMDEF_H头文件内容e
dif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedefu
sig
edcharboolea
Boolea
valuetypetypedefu
sig
edlo
gi
tui
t32U
sig
ed32bitvaluetypedefu
sig
edshortui
t16U
sig
ed16bitvaluetypedefu
sig
edcharui
t8U
sig
ed8bitvaluetypedefsig
edlo
gi
ti
t32Sig
ed32bitvaluetypedefsig
edshorti
t16Sig
ed16bitvaluetypedefsig
edchari
t8Sig
ed8bitvalue下面的不建议使用typedefu
sig
edcharbyteU
sig
ed8bitvaluetypetypedefu
sig
edshortwordU
si
ged16bitvaluetypetypedefu
sig
edlo
gdwordU
sig
ed32bitvaluetypetypedefu
sig
edcharui
t1U
sig
ed8bitvaluetypetypedefu
sig
edshortui
t2U
sig
ed16bitvaluetypetypedefu
sig
edlo
gui
t4U
sig
ed32bitvaluetypetypedefsig
edchari
t1Sig
ed8bitvaluetypetypedefsig
edshorti
t2Sig
ed16bitvaluetypetypedeflo
gi
ti
t4Sig
ed32bitvaluetypetypedefsig
edlo
gsi
t31Sig
ed32bitvaluetypedefsig
edshortsi
t15Sig
ed16bitvaluetypedefsig
edcharsi
t7Sig
ed8bitvalue3,得到指定地址上的一个字节或字defi
eMEM_Bxbytexdefi
eMEM_Wxwordx4,求最大值和最小值defi
eMAXxyxyxydefi
eMINxyxyxy5,得到一个field在结构体struct中的偏移量defi
eFPOStypefieldli
te545dwordtype0fieldli
te5456得到一个结构体中field所占用的字节数defi
eFSIZtypefieldsizeoftype0field7,按照LSB格式把两个字节转化为一个Worddefi
eFLIPWraywordray0256ray1
f8,按照LSB格式把一个Word转化为两个字节defi
eFLOPWrayvalray0val256ray1val0xFF9,得到一个变量的地址(word宽度)defi
eB_PTRvarbytevoidvardefi
eW_PTRvarwordvoidvar10,得到一个字的高位和低位字节defi
eWORD_LOxxxbytewordxxx255defi
eWORD_HIxxxbytewordxxx811,返回一个比X大的最接近的8的倍数defi
eRND8xx78812,将一个字母转换为大写defi
eUPCASEccaczc0x20c13,判断字符是不是10进值的数字defi
eDECCHKcc0c914,判断字r
好听全球资料 返回顶部