欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)

发布时间:2025/10/17 编程问答 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

预定义宏:

ANSI C 定义了许多宏。在编程中您可以使用这些宏,但是不能直接修改这些预定义的宏。
宏    描述
__DATE__    当前日期,一个以 "MMM DD YYYY" 格式表示的字符常量。
__TIME__    当前时间,一个以 "HH:MM:SS" 格式表示的字符常量。
__FILE__    这会包含当前文件名,一个字符串常量。
__LINE__    这会包含当前行号,一个十进制常量。
__STDC__    当编译器以 ANSI 标准编译时,则定义为 1。

实例演示:

//[root@J01051386 function]# cat line.c #include <stdio.h> int main() {printf("File:%s\n",__FILE__);printf("Date:%s\n",__DATE__);printf("Time:%s\n",__TIME__);printf("Line:%d\n",__LINE__);printf("Ansi:%d\n",__STDC__);printf("%s\n",__func__); }

执行过程以及结果:

[root@J01051386 function]# gcc line.c [root@J01051386 function]# ./a.out File:line.c Date:Nov 2 2018 Time:15:33:30 Line:7 Ansi:1 main

预处理宏的使用 —— 打印debug信息:

//定义:debug打印规则// //[root@J01051386 user_mgr]# cat debug.h #define __DEBUG 1 #if __DEBUG#define DEBUG_PRINT(fmt, ...) printf("Debug-- File: "__FILE__", Line: %05d, Function: %s: " , __LINE__,__FUNCTION__ );printf(fmt, ##__VA_ARGS__);printf("\n") #else#define DEBUG_PRINT(fmt, ...) #endif //引用:使用.h文件定义的函数// //执行cat命令 [root@J01051386 user_mgr]# vim io.c +535 //查看到的结果如下显示 535 DEBUG_PRINT("%s\n", sql); //sql的值是select id, name, remark, grouname from user_resource //执行结果显示: 与定义相对应 Debug-- File: io.c, Line: 00535, Function: readfromdb2: select id, name, remark, grouname from user_resource

 

总结

以上是生活随笔为你收集整理的C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。