[规范] 新增运算符空格规范 + myBase.h 全面调整

规范变更(已写入 /memories/code-style.md):
- 运算符前后必须有空格 (a << 8, n >> 1, x | y, p + 1)
- 逗号后必须有空格 (func(a, b, c), (m)[0] = x, (m)[1] = y)
- 关键字后必须有空格 (while (0), if (, for ()
- 分号后有空格 (for (i = 0; i < n; i++))

myBase.h:
- 全部大小端宏添加运算符空格 ((uint8_t *)(p) 替代 (uint8_t*)(p))
- MY_LOG do{}while(0) 拆多行 + 加空格
- 类型存取宏加空格
- 注释英文化
This commit is contained in:
ypc 2026-07-07 14:00:49 +08:00
parent 38c8e4f6e4
commit bd36855951
1 changed files with 35 additions and 28 deletions

View File

@ -1,7 +1,7 @@
/** /**
* @file myBase.h * @file myBase.h
* @brief * @brief Public base definitions shared macros, types, constants
* @details RTU * @details Written from scratch, functionally aligned with RTU original.
*/ */
#ifndef _MY_BASE_H_ #ifndef _MY_BASE_H_
@ -22,7 +22,7 @@ extern "C"
{ {
#endif #endif
/* === 终端颜色 === */ /* === Terminal colors === */
#define COLOR_RESET "\033[0m" #define COLOR_RESET "\033[0m"
#define COLOR_RED "\033[31m" #define COLOR_RED "\033[31m"
#define COLOR_GREEN "\033[32m" #define COLOR_GREEN "\033[32m"
@ -32,53 +32,60 @@ extern "C"
#define COLOR_CYAN "\033[36m" #define COLOR_CYAN "\033[36m"
#define COLOR_WHITE "\033[37m" #define COLOR_WHITE "\033[37m"
/* === 文件名缩写(去掉路径前缀,跨平台) === */ /* === Short filename (strip path prefix, cross-platform) === */
#if defined(__linux__) #if defined(__linux__)
#define __SHORT_FILE__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define __SHORT_FILE__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
#else #else
#define __SHORT_FILE__ (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__) #define __SHORT_FILE__ (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
#endif #endif
/* === 控制台日志宏liblog 加载前可用) === */ /* === Console log macros (usable before liblog is loaded) === */
#define MY_LOG(color, level, fmt, ...) \ #define MY_LOG(color, level, fmt, ...) \
do { printf("%s[%s] [%s,%u] " fmt COLOR_RESET "\n", \ do \
color, level, __SHORT_FILE__, __LINE__, ##__VA_ARGS__); } while(0) { \
printf("%s[%s] [%s, %u] " fmt COLOR_RESET "\n", \
color, level, __SHORT_FILE__, __LINE__, ##__VA_ARGS__); \
} while (0)
#define MY_LOG_I(fmt, ...) MY_LOG(COLOR_WHITE, "INFO", fmt, ##__VA_ARGS__) #define MY_LOG_I(fmt, ...) MY_LOG(COLOR_WHITE, "INFO", fmt, ##__VA_ARGS__)
#define MY_LOG_E(fmt, ...) MY_LOG(COLOR_RED, "ERROR", fmt, ##__VA_ARGS__) #define MY_LOG_E(fmt, ...) MY_LOG(COLOR_RED, "ERROR", fmt, ##__VA_ARGS__)
/* === LOCAL 修饰(表语义:文件内可见) === */ /* === LOCAL modifier (semantic: file-scope only) === */
#ifndef LOCAL #ifndef LOCAL
#define LOCAL static #define LOCAL static
#endif #endif
/* === 固定长度字符串类型 === */ /* === Fixed-length string types === */
#define SHORT_STR_LEN 64 #define SHORT_STR_LEN 64
typedef char S_STR[SHORT_STR_LEN]; typedef char S_STR[SHORT_STR_LEN];
#define LONG_STR_LEN 128 #define LONG_STR_LEN 128
typedef char L_STR[LONG_STR_LEN]; typedef char L_STR[LONG_STR_LEN];
/* === 大小端转换 === */ /* === Endian swap: uint16 === */
#define BE16_GET(p) ((uint16_t)(((uint8_t *)(p))[0] << 8 | ((uint8_t *)(p))[1])) #define BE16_GET(p) ((uint16_t)(((uint8_t *)(p))[0] << 8 | ((uint8_t *)(p))[1]))
#define BE16_SET(m, n) ((m)[0] = (uint8_t)((n) >> 8), (m)[1] = (uint8_t)(n)) #define BE16_SET(m, n) ((m)[0] = (uint8_t)((n) >> 8), (m)[1] = (uint8_t)(n))
#define LE16_GET(p) ((uint16_t)(((uint8_t *)(p))[1] << 8 | ((uint8_t *)(p))[0])) #define LE16_GET(p) ((uint16_t)(((uint8_t *)(p))[1] << 8 | ((uint8_t *)(p))[0]))
#define LE16_SET(m, n) ((m)[0] = (uint8_t)(n), (m)[1] = (uint8_t)((n) >> 8)) #define LE16_SET(m, n) ((m)[0] = (uint8_t)(n), (m)[1] = (uint8_t)((n) >> 8))
/* === Endian swap: int32 === */
#define BE32_GET(p) ((int32_t)(((uint8_t *)(p))[0] << 24 | ((uint8_t *)(p))[1] << 16 | ((uint8_t *)(p))[2] << 8 | ((uint8_t *)(p))[3])) #define BE32_GET(p) ((int32_t)(((uint8_t *)(p))[0] << 24 | ((uint8_t *)(p))[1] << 16 | ((uint8_t *)(p))[2] << 8 | ((uint8_t *)(p))[3]))
#define BE32_SET(m, n) ((m)[0] = (uint8_t)((n) >> 24), (m)[1] = (uint8_t)((n) >> 16), (m)[2] = (uint8_t)((n) >> 8), (m)[3] = (uint8_t)(n)) #define BE32_SET(m, n) ((m)[0] = (uint8_t)((n) >> 24), (m)[1] = (uint8_t)((n) >> 16), (m)[2] = (uint8_t)((n) >> 8), (m)[3] = (uint8_t)(n))
#define LE32_GET(p) ((int32_t)(((uint8_t *)(p))[3] << 24 | ((uint8_t *)(p))[2] << 16 | ((uint8_t *)(p))[1] << 8 | ((uint8_t *)(p))[0])) #define LE32_GET(p) ((int32_t)(((uint8_t *)(p))[3] << 24 | ((uint8_t *)(p))[2] << 16 | ((uint8_t *)(p))[1] << 8 | ((uint8_t *)(p))[0]))
#define LE32_SET(m, n) ((m)[3] = (uint8_t)((n) >> 24), (m)[2] = (uint8_t)((n) >> 16), (m)[1] = (uint8_t)((n) >> 8), (m)[0] = (uint8_t)(n)) #define LE32_SET(m, n) ((m)[3] = (uint8_t)((n) >> 24), (m)[2] = (uint8_t)((n) >> 16), (m)[1] = (uint8_t)((n) >> 8), (m)[0] = (uint8_t)(n))
/* === Endian swap: uint64 === */
#define BE64_GET(p) (((uint64_t)(((uint8_t *)(p))[0]) << 56) | ((uint64_t)(((uint8_t *)(p))[1]) << 48) | ((uint64_t)(((uint8_t *)(p))[2]) << 40) | ((uint64_t)(((uint8_t *)(p))[3]) << 32) | ((uint64_t)(((uint8_t *)(p))[4]) << 24) | ((uint64_t)(((uint8_t *)(p))[5]) << 16) | ((uint64_t)(((uint8_t *)(p))[6]) << 8) | ((uint64_t)(((uint8_t *)(p))[7]))) #define BE64_GET(p) (((uint64_t)(((uint8_t *)(p))[0]) << 56) | ((uint64_t)(((uint8_t *)(p))[1]) << 48) | ((uint64_t)(((uint8_t *)(p))[2]) << 40) | ((uint64_t)(((uint8_t *)(p))[3]) << 32) | ((uint64_t)(((uint8_t *)(p))[4]) << 24) | ((uint64_t)(((uint8_t *)(p))[5]) << 16) | ((uint64_t)(((uint8_t *)(p))[6]) << 8) | ((uint64_t)(((uint8_t *)(p))[7])))
#define LE64_GET(p) (((uint64_t)(((uint8_t *)(p))[7]) << 56) | ((uint64_t)(((uint8_t *)(p))[6]) << 48) | ((uint64_t)(((uint8_t *)(p))[5]) << 40) | ((uint64_t)(((uint8_t *)(p))[4]) << 32) | ((uint64_t)(((uint8_t *)(p))[3]) << 24) | ((uint64_t)(((uint8_t *)(p))[2]) << 16) | ((uint64_t)(((uint8_t *)(p))[1]) << 8) | ((uint64_t)(((uint8_t *)(p))[0]))) #define LE64_GET(p) (((uint64_t)(((uint8_t *)(p))[7]) << 56) | ((uint64_t)(((uint8_t *)(p))[6]) << 48) | ((uint64_t)(((uint8_t *)(p))[5]) << 40) | ((uint64_t)(((uint8_t *)(p))[4]) << 32) | ((uint64_t)(((uint8_t *)(p))[3]) << 24) | ((uint64_t)(((uint8_t *)(p))[2]) << 16) | ((uint64_t)(((uint8_t *)(p))[1]) << 8) | ((uint64_t)(((uint8_t *)(p))[0])))
#define BE64_SET(m, n) ((m)[0] = (uint8_t)((n) >> 56), (m)[1] = (uint8_t)((n) >> 48), (m)[2] = (uint8_t)((n) >> 40), (m)[3] = (uint8_t)((n) >> 32), (m)[4] = (uint8_t)((n) >> 24), (m)[5] = (uint8_t)((n) >> 16), (m)[6] = (uint8_t)((n) >> 8), (m)[7] = (uint8_t)(n)) #define BE64_SET(m, n) ((m)[0] = (uint8_t)((n) >> 56), (m)[1] = (uint8_t)((n) >> 48), (m)[2] = (uint8_t)((n) >> 40), (m)[3] = (uint8_t)((n) >> 32), (m)[4] = (uint8_t)((n) >> 24), (m)[5] = (uint8_t)((n) >> 16), (m)[6] = (uint8_t)((n) >> 8), (m)[7] = (uint8_t)(n))
#define LE64_SET(m, n) ((m)[7] = (uint8_t)((n) >> 56), (m)[6] = (uint8_t)((n) >> 48), (m)[5] = (uint8_t)((n) >> 40), (m)[4] = (uint8_t)((n) >> 32), (m)[3] = (uint8_t)((n) >> 24), (m)[2] = (uint8_t)((n) >> 16), (m)[1] = (uint8_t)((n) >> 8), (m)[0] = (uint8_t)(n)) #define LE64_SET(m, n) ((m)[7] = (uint8_t)((n) >> 56), (m)[6] = (uint8_t)((n) >> 48), (m)[5] = (uint8_t)((n) >> 40), (m)[4] = (uint8_t)((n) >> 32), (m)[3] = (uint8_t)((n) >> 24), (m)[2] = (uint8_t)((n) >> 16), (m)[1] = (uint8_t)((n) >> 8), (m)[0] = (uint8_t)(n))
/* === 类型存取 === */ /* === Typed data access === */
#define GET_BY_TYPE(p, type) (*(type *)(p)) #define GET_BY_TYPE(p, type) (*(type *)(p))
#define SET_BY_TYPE(p, v, type) (*(type *)(p) = *(type *)(v)) #define SET_BY_TYPE(p, v, type) (*(type *)(p) = *(type *)(v))
/* === 数据类型枚举(用于协议编解码) === */ /* === Data type constants (for protocol encode/decode) === */
#define DATA_TYPE_B 1 #define DATA_TYPE_B 1
#define DATA_TYPE_S8 43 #define DATA_TYPE_S8 43
#define DATA_TYPE_U8 32 #define DATA_TYPE_U8 32