C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)
生活随笔
收集整理的這篇文章主要介紹了
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信息:)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MODE ——计算了 任意多个数字的平均
- 下一篇: 函数 —— memset(给数组重新赋值