常用C语言头文件库的漂亮宏定义

1. 防止一个头文件被重复包含

#ifndef COMDEF_H
#define COMDEF_H
//头文件内容
#endif

2. 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。

typedef unsigned char boolean;      /* Boolean value type. */
typedef unsigned long int uint32;   /* Unsigned 32 bit value */
typedef unsigned short uint16;      /* Unsigned 16 bit value */
typedef unsigned char uint8;        /* Unsigned 8 bit value */
typedef signed long int int32;      /* Signed 32 bit value */
typedef signed short int16;         /* Signed 16 bit value */
typedef signed char int8;           /* Signed 8 bit value */

下面的不推荐使用:

typedef unsigned char byte; /* Unsigned 8 bit value type. */
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 uint2; /* 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 int2; /* Signed 16 bit value type. */
typedef long int int4; /* Signed 32 bit value type. */
typedef signed long sint31; /* Signed 32 bit value */
typedef signed short sint15; /* Signed 16 bit value */
typedef signed char sint7; /* Signed 8 bit value */

一、指定的某一位数置1
#define setbit(x,y) x|=(1<<y)

二、指定的某一位数置0
#define clrbit(x,y) x&=~(1<<y)

三、指定的某一位数取反
#define reversebit(x,y) x^=(1<<y)

三、获取的某一位的值
#define getbit(x,y) ((x) >> (y)&1)

四、常用宏打印

功能
__FILE __ 当前程序文件名的字符串
__FUNCTION __ 或 __func __ 当前函数名的字符串
__LINE __ 当前行号的整数
__DATE __ 当前日期的字符串
__TIME __ 当前时间的字符串

未完待续

摘自:https://mp.weixin.qq.com/s/LUiE7WSr9IS5URopokikAQ

posted @ 2021-04-02 16:29  方罗良  阅读(289)  评论(0)    收藏  举报