欢迎来到天天文库
浏览记录
ID:62276005
大小:29.50 KB
页数:24页
时间:2021-04-25
《C语言宏定义技巧和指针.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.....................最新资料整理推荐.....................C语言宏定义技巧1,防止一个头文件被重复包含 #ifndefCOMDEF_H #defineCOMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedefunsignedcharboolean;/*Booleanvaluetype.*/ typedefunsignedlongintuint32;/*Unsigned32bitvalue*/24.....................最新资
2、料整理推荐..................... typedefunsignedshortuint16;/*Unsigned16bitvalue*/ typedefunsignedcharuint8;/*Unsigned8bitvalue*/ typedefsignedlongintint32;/*Signed32bitvalue*/ typedefsignedshortint16;/*Signed16bitvalue*/ typedefsignedcharint8;/*Signed8bitvalue*/ //下面的不建议使用 typedefunsignedcha
3、rbyte;/*Unsigned8bitvaluetype.*/24.....................最新资料整理推荐..................... typedefunsignedshortword;/*Unsinged16bitvaluetype.*/ typedefunsignedlongdword;/*Unsigned32bitvaluetype.*/ typedefunsignedcharuint1;/*Unsigned8bitvaluetype.*/ typedefunsignedshortuint2;/*Unsigned16bitvaluetype.
4、*/ typedefunsignedlonguint4;/*Unsigned32bitvaluetype.*/ typedefsignedcharint1;/*Signed8bitvaluetype.*/ typedefsignedshortint2;/*Signed16bitvaluetype.*/24.....................最新资料整理推荐..................... typedeflongintint4;/*Signed32bitvaluetype.*/ typedefsignedlongsint31;/*Signed32bitvalue
5、*/ typedefsignedshortsint15;/*Signed16bitvalue*/ typedefsignedcharsint7;/*Signed8bitvalue*/ 3,得到指定地址上的一个字节或字 #defineMEM_B(x)(*((byte*)(x))) #defineMEM_W(x)(*((word*)(x))) 4,求最大值和最小值 #defineMAX(x,y)(((x)>(y))?(x):(y))24.....................最新资料整理推荐..................... #defineMIN(x,y)(((x)<
6、(y))?(x):(y)) 5,得到一个field在结构体(struct)中的偏移量 #defineFPOS(type,field) /*lint-e545*/((dword)&((type*)0)->field)/*lint+e545*/ 6,得到一个结构体中field所占用的字节数 #defineFSIZ(type,field)sizeof(((type*)0)->field) 7,按照LSB格式把两个字节转化为一个Word #defineFLIPW(ray)((((word)(ray)[0])*256)+(ray)[1]) 8,按照LSB格式把一个Word转化为两个字节
7、 #defineFLOPW(ray,val)24.....................最新资料整理推荐..................... (ray)[0]=((val)/256); (ray)[1]=((val)&0xFF) 9,得到一个变量的地址(word宽度) #defineB_PTR(var)((byte*)(void*)&(var)) #defineW_PTR(
此文档下载收益归作者所有