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