3.0 KiB
3.0 KiB
myBase.h — 公共基础定义 API 参考
模块概述
myBase.h 是所有模块共享的基础头文件。提供通用宏、类型别名、字节序转换、数据类型常量等。
终端颜色码
#define COLOR_RESET "\033[0m" // 重置
#define COLOR_RED "\033[31m" // 红色
#define COLOR_GREEN "\033[32m" // 绿色
#define COLOR_YELLOW "\033[33m" // 黄色
#define COLOR_BLUE "\033[34m" // 蓝色
#define COLOR_MAGENTA "\033[35m" // 品红
#define COLOR_CYAN "\033[36m" // 青色
#define COLOR_WHITE "\033[37m" // 白色
示例:
printf(COLOR_RED "错误: %s" COLOR_RESET "\n", "连接失败");
文件名缩写
#define __SHORT_FILE__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
自动去掉文件路径前缀,跨平台兼容(Linux 用 /,Windows 用 \)。
简易日志宏
#define MY_LOG(color, level, fmt, ...) // 控制台日志(带颜色)
#define MY_LOG_I(fmt, ...) // INFO(白色)
#define MY_LOG_E(fmt, ...) // ERROR(红色)
LOCAL 修饰符
#define LOCAL static
语义化表示"文件内可见",等价于 static。
定长字符串类型
typedef char S_STR[64]; // 64 字节短字符串
typedef char L_STR[128]; // 128 字节长字符串
字节序转换宏
uint16
| 宏 | 功能 |
|---|---|
BE16_GET(p) |
大端字节序 → uint16 |
BE16_SET(m, n) |
uint16 → 大端字节序 |
LE16_GET(p) |
小端字节序 → uint16 |
LE16_SET(m, n) |
uint16 → 小端字节序 |
int32
| 宏 | 功能 |
|---|---|
BE32_GET(p) / BE32_SET(m, n) |
大端 int32 |
LE32_GET(p) / LE32_SET(m, n) |
小端 int32 |
uint64
| 宏 | 功能 |
|---|---|
BE64_GET(p) / BE64_SET(m, n) |
大端 uint64 |
LE64_GET(p) / LE64_SET(m, n) |
小端 uint64 |
示例:
uint8_t buf[4] = { 0x00, 0x00, 0x00, 0xFF };
uint32_t val = BE32_GET(buf);
printf("val = %u\n", val); // 255
类型化数据存取
#define GET_BY_TYPE(p, type) (*(type *)(p))
#define SET_BY_TYPE(p, v, type) (*(type *)(p) = *(type *)(v))
数据类型常量(22 种,用于协议编解码)
| 常量 | 值 | 含义 | 常量 | 值 | 含义 |
|---|---|---|---|---|---|
DATA_TYPE_B |
1 | bool | DATA_TYPE_IP |
100 | IP 地址 |
DATA_TYPE_S8 |
43 | int8 | DATA_TYPE_MAC |
101 | MAC 地址 |
DATA_TYPE_U8 |
32 | uint8 | DATA_TYPE_C8 |
102 | char[8] |
DATA_TYPE_S16 |
33 | int16 | DATA_TYPE_C32 |
103 | char[32] |
DATA_TYPE_U16 |
45 | uint16 | DATA_TYPE_C64 |
104 | char[64] |
DATA_TYPE_S32 |
2 | int32 | DATA_TYPE_C128 |
105 | char[128] |
DATA_TYPE_U32 |
35 | uint32 | DATA_TYPE_C1 |
106 | char[1] |
DATA_TYPE_L64 |
36 | int64 | DATA_TYPE_STR |
107 | string |
DATA_TYPE_UL64 |
37 | uint64 | |||
DATA_TYPE_F32 |
38 | float | |||
DATA_TYPE_D64 |
39 | double |
依赖关系
- 依赖: 标准 C/POSIX 头文件
- 被依赖: 所有模块