下载  >  开发技术  >  C  > C语言常用宏定义技巧

C语言常用宏定义技巧 评分:

C语言常用宏定义技巧!
typedef unsigned short word; /*Unsinged 16 bit value type * typedef unsigned long dword; /* Unsigned 32 bit value type. typedef unsigned char uint1; /*Unsigned 8 bit value type typedef unsigned short uint 2 /*Unsigned 16 bit value type. */ typedef unsigned long uint4; /Unsigned 32 bit value type. * typedef signed char int1; /*Signed 8 bit value type. * typedef signed short int 2 / Signed 16 bit value type. typedef long int int 4; / Signed 32 bit value type. typedef signed long sint 31; Signed 32 bit value * typedef signed short sint15; / Signed 16 bit value */ typedef signed char sint7; / Signed 8 bit value 3,得到指定地址上的一个字节或字 #define mem b(x(((byte)())) #define mem w(x)(*((word *)(x))) 求最大值和最小值 #define max(x,y(((x>y))?(x):y)) #define MIN(x,y)( ((x <y)?(x): ly)) 5,得到一个feld在结构体( struct)中的偏移量 #define fpos( type, field)\ /*lint-e545*/((dword )&( type *)0)- >field *lint +e545*/ 6,得到一个结构体中feld所占用的字节数 #define fsiz type, field )sizeof( ((type*)0)->field 7,按照LSB格式把两个字节转化为一个Word #define flipw( ray )((((word (ray[o]*256)+(ray[1]) 8,按照LSB格式把一个Word转化为两个字节 #define flow( ray, val (ray[O]=(a)/256);\ (ray[1]=((val)&OxFF 9,得到一个变量的地址(Word宽度) #define B ptr( var)((byte )(void*)&(var)) #define W ptR( var(word*)(void*)&(var) 10,得到一个字的高位和低位字节 #define Word lo(xxx ((byte) ((word) (xxx )&255)) #define WORD Hl(xXx)(byte)(word)(xxx)>>8)) 11,返回一个比Ⅹ大的最接近的8的倍数 # define rnd:8(X)(×)+7)/8)*8) 12,将一个字母转换为大写 # define upcase(c)((c)>=a'&&(c)<='z)?(c)-0x20):(c)) 13,判断字符是不是10进值的数字 #define decchk(c(c)>=0&&(c)<=9') 14,判断字符是不是16进值的数字 #define heXchk(c(((c>=0&&(c)<=9)I\ (c>=A&&(c)<="F")l| (c>="a'&&(c)<="f")) 15,防止溢出的一个方法 #define INC sat( val )(val =((val) +1>(val)?(val)+1: (val) 16,返回数组元素的个数 #define arr size(a sizeof( (a))/ sizeof((a[od))) 17,返回一个无符号数n尾的值MoD_ BY POWER OF TWO(Xn)=X%(2^n) #define mod by poWer of two( val, mod by ) (dword)(val)&(dword)((mod by)-1 18,对于lO空间映射在存储空间的结构,输入输岀处理 #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)) 2005-99添加] 19使用一些宏跟踪调试 ANS标准说明了五个预定义的宏名。它们是 LINE FILE DATE TIME STDC 如果编译不是标准的,则可能仅攴持以上宏名中的几个,或根木不攴持。记住编 详程序 也许还提供其亡预定义的宏名。 LINE及F|LE宏指令在有关#ine的部分中已讨论,这里讨论其余的宏名。 DATE_宏指令含有形式为月/口/年的串,表示源文件被翻译到代码吋的口期。 溟代码翻译到目标代码的时间作为串包含在TIME中。串形式为时:分:秒。 如果实现是标准的,则宏STDC_含有|进制常量1。如果它含有任何其它数, 则实现是 非标准的 可以定义宏,例如 当定义了 DEBUG,输出数据信息和所在文件所在行 #ifdef debug #define deBUgmsg(msg, date)printf(msg);printf("%d%d%d",date, LINE FILE #else #define debugmsg(msg, date) #endif 20,宏定义防止使用是错误

...展开详情
2012-08-29 上传 大小:234KB
举报 收藏
分享

评论 下载该资源后可以进行评论 共1条

nfhn1 写得有点凌乱 内容比较偏向硬件操作系统\底层
2012-09-14
回复
C语言常用宏定义技巧

C语言常用宏定义技巧!

立即下载
c语言常用宏定义技巧

挺好的,我学嵌入式就从这开始的.c语言常用宏定义技巧,用C语言编程,宏定义是个很重要的编程技巧。用好了宏定义,它可以增强程序的可读性、可移植性、方便性、灵活性等等。

立即下载
C语言宏定义技巧(常用宏定义)

C语言宏定义技巧(常用宏定义).

立即下载
c语言宏定义技巧,常用宏定义方法

c语言宏定义技巧,常用宏定义 原来c语言也可以这样用,没看之前真有很多看不懂的

立即下载
20个C语言中常用宏定义总结

20个C语言中常用宏定义总结

立即下载
c语言宏定义技巧(常用宏定义)

写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。

立即下载
C语言常用算法C语言常用算法

C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法C语言常用算法

立即下载
C语言常用算法源代码C语言常用算法源代码C语言常用算法源代码

C语言常用算法源代码C语言常用算法源代码C语言常用算法源代码C语言常用算法源代码

立即下载
C语言常用代码C语言常用代码

C语言常用C语言常用代码CC语言常用代码语言常用代码代码

立即下载
C语言宏定义C语言宏定义

C语言宏定义 C语言宏定义C语言宏定义 C语言宏定义 C语言宏定义 C语言宏定义 C语言宏定义

立即下载
C语言宏定义技巧C语言宏定义技巧

C语言宏定义技巧C语言宏定义技巧C语言宏定义技巧

立即下载