C语言预定义宏 #
一、常用预定义宏 #
1.1 列表 #
| 宏 | 说明 |
|---|---|
| FILE | 当前文件名 |
| LINE | 当前行号 |
| func | 当前函数名 |
| DATE | 编译日期 |
| TIME | 编译时间 |
| STDC | 是否标准C |
二、使用示例 #
2.1 调试信息 #
c
#include <stdio.h>
#define LOG(msg) \
printf("[%s:%d] %s: %s\n", __FILE__, __LINE__, __func__, msg)
void test() {
LOG("测试消息");
}
int main() {
LOG("程序开始");
test();
return 0;
}
2.2 断言 #
c
#include <stdio.h>
#define ASSERT(expr) \
if (!(expr)) { \
printf("断言失败: %s\n文件: %s, 行: %d\n", \
#expr, __FILE__, __LINE__); \
}
int main() {
int a = 5;
ASSERT(a > 0);
ASSERT(a > 10);
return 0;
}
2.3 版本信息 #
c
#include <stdio.h>
int main() {
printf("编译日期: %s\n", __DATE__);
printf("编译时间: %s\n", __TIME__);
printf("文件名: %s\n", __FILE__);
return 0;
}
三、总结 #
| 宏 | 用途 |
|---|---|
| FILE | 调试定位 |
| LINE | 调试定位 |
| func | 函数追踪 |
| DATE | 版本信息 |
| TIME | 版本信息 |
下一步,让我们学习高级特性!
最后更新:2026-03-26