修改 优化使用说明

This commit is contained in:
2025-12-17 02:44:50 +08:00
parent eea80be1c7
commit 0514bfafe4

View File

@@ -1,14 +1,14 @@
# Log for C # Log for C
基于C23的日志库支持自动类型识别、格式化输出、颜色和日志等级 基于C23的日志库支持自动类型识别、格式化输出、颜色和日志等级
## 功能说明 ## 功能说明
使用C23`_Generic`特性实现类型自动识别和格式化输出 使用C11`_Generic`特性实现类型自动识别和格式化输出
### log() - 基础日志输出 ### log() - 基础日志输出
自动判断传入参数类型并输出,支持格式化字符串 自动判断传入参数类型并输出,支持格式化字符串
**支持的参数类型:** **支持的参数类型:**
@@ -20,8 +20,7 @@
- `wchar_t*` / `const wchar_t*` - 宽字符串 - `wchar_t*` / `const wchar_t*` - 宽字符串
- `char` - 字符 - `char` - 字符
> **注意:** C语言中字符字面量如 `'A'`)的类型是 `int`,会被当作整数打印。如需打印字符,请使用 `char`类型变量或显式转换 `(char)'A'` > **注意:** C语言中字符字面量如 `'A'`)的类型是 `int`,会被当作整数打印。如需打印字符,请使用 `char`类型变量或显式转换 `(char)'A'`
>
**使用方式:** **使用方式:**
@@ -33,11 +32,11 @@ log(format, arg1, arg2) // 两个占位符
log(format, arg1, ..., arg10) // 十个占位符 log(format, arg1, ..., arg10) // 十个占位符
``` ```
格式化字符串使用 `{}`作为占位符会自动替换为对应参数的值。支持最多10个格式化变量参数 格式化字符串使用 `{}`作为占位符会自动替换为对应参数的值。支持最多10个格式化变量参数
### clog() - 颜色输出 ### clog() - 颜色输出
输出带颜色的日志信息 输出带颜色的日志信息
**参数:** **参数:**
@@ -49,7 +48,7 @@ log(format, arg1, ..., arg10) // 十个占位符
### 日志等级函数 ### 日志等级函数
带时间戳和颜色的日志等级输出 带时间戳和颜色的日志等级输出
**logerr(message)** - 错误日志,红色输出,格式:`[时间 ERROR] 消息` **logerr(message)** - 错误日志,红色输出,格式:`[时间 ERROR] 消息`
@@ -71,17 +70,16 @@ log(format, arg1, ..., arg10) // 十个占位符
int main() { int main() {
int i = 18; int i = 18;
double f = 1.75; double f = 1.75;
log("hello"); log("hello");
log(i); log(i);
log(f); log(f);
log("年龄{}岁, 身高{}米", i, f); char name[] = "小明";
log("他的名字是{}年龄是{}岁, 身高是{}米,他的身份是{},他最近的考试成绩是{}", name, i, f, L"大学生", (char)'A');
clog("red", "错误信息"); clog("red", "world");
logerr("MySQL连接失败"); logerr("MySQL连接失败");
logok("MySQL连接成功"); logok("MySQL连接成功");
loginfo("已插入数据"); loginfo("已插入数据");
logwarn("测试失败");
return 0; return 0;
} }
``` ```
@@ -92,4 +90,4 @@ int main() {
gcc -std=c2x -o main test.c log.c gcc -std=c2x -o main test.c log.c
``` ```
需要GCC 13+或其他支持C23标准的编译器 > 推荐GCC 13+或其他支持C23标准的编译器,其他版本未测试,可行性不明