2022年c语言宏定义详解 .pdf
《2022年c语言宏定义详解 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言宏定义详解 .pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、?c 语言宏定义详解1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H/头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedefunsigned charboolean;/*Boolean value type.*/typedefunsigned long intuint32;/*Unsigned 32 bit value*/typedefunsigned short uint16;/*Unsigned 16 bit value*/typedefunsigned charuint8;/
2、*Unsigned 8bit value*/typedefsigned long intint32;/*Signed 32 bit value*/typedefsigned short int16;/*Signed 16 bit value*/typedefsigned charint8;/*Signed 8bit value*/下面的不建议使用typedefunsigned char byte;/*Unsigned 8bit value type.*/typedefunsigned shortword;/*Unsinged 16 bit value type.*/typedefunsigne
3、d long dword;/*Unsigned 32 bit value type.*/typedefunsigned char uint1;/*Unsigned 8bit value type.*/typedefunsigned shortuint2;/*Unsigned 16 bit value type.*/typedefunsigned long uint4;/*Unsigned 32 bit value type.*/typedefsigned char int1;/*Signed 8bit value type.*/名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8
4、页 -typedefsigned shortint2;/*Signed 16 bit value type.*/typedeflong intint4;/*Signed 32 bit value type.*/typedefsigned long sint31;/*Signed 32 bit value*/typedefsigned shortsint15;/*Signed 16 bit value*/typedefsigned char sint7;/*Signed 8bit value*/3,得到指定地址上的一个字节或字#defineMEM_B(x)(*(byte*)(x)#defineM
5、EM_W(x)(*(word*)(x)4,求最大值和最小值#defineMAX(x,y)(x)(y)?(x):(y)#defineMIN(x,y)(x)field)/*lint+e545*/6,得到一个结构体中field 所占用的字节数#define FSIZ(type,field)sizeof(type*)0)-field)7,按照 LSB 格式把两个字节转化为一个Word#defineFLIPW(ray)(word)(ray)0)*256)+(ray)1)8,按照 LSB 格式把一个Word 转化为两个字节#defineFLOPW(ray,val)(ray)0=(val)/256);(ra
6、y)1=(val)&0 xFF)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -9,得到一个变量的地址(word 宽度)#defineB_PTR(var)(byte*)(void*)&(var)#defineW_PTR(var)(word*)(void*)&(var)10,得到一个字的高位和低位字节#defineWORD_LO(xxx)(byte)(word)(xxx)&255)#defineWORD_HI(xxx)(byte)(word)(xxx)8)11,返回一个比X 大的最接近的8 的倍数#define RND8(x)(x)+7)/8)*8)12,将一个字母转换为
7、大写#defineUPCASE(c)(c)=a&(c)=0&(c)=0&(c)=A&(c)=a&(c)(val)?(val)+1:(val)16,返回数组元素的个数#defineARR_SIZE(a)(sizeof(a)/sizeof(a0)17,返回一个无符号数n 尾的值 MOD_BY_POWER_OF_TWO(X,n)=X%(2n)#define MOD_BY_POWER_OF_TWO(val,mod_by)名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -(dword)(val)&(dword)(mod_by)-1)18,对于 IO 空间映射在存储空间的结构,输入输
8、出处理#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)=(dw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年c语言宏定义详解 2022 语言 定义 详解
限制150内