C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)
生活随笔
收集整理的這篇文章主要介紹了
C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
預(yù)定義宏:
ANSI C 定義了許多宏。在編程中您可以使用這些宏,但是不能直接修改這些預(yù)定義的宏。
宏?? ?描述
__DATE__?? ?當(dāng)前日期,一個(gè)以 "MMM DD YYYY" 格式表示的字符常量。
__TIME__?? ?當(dāng)前時(shí)間,一個(gè)以 "HH:MM:SS" 格式表示的字符常量。
__FILE__?? ?這會包含當(dāng)前文件名,一個(gè)字符串常量。
__LINE__?? ?這會包含當(dāng)前行號,一個(gè)十進(jìn)制常量。
__STDC__?? ?當(dāng)編譯器以 ANSI 標(biāo)準(zhǔn)編譯時(shí),則定義為 1。
實(shí)例演示:
//[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__); }執(zhí)行過程以及結(jié)果:
[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預(yù)處理宏的使用 —— 打印debug信息:
//定義:debug打印規(guī)則// //[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文件定義的函數(shù)// //執(zhí)行cat命令 [root@J01051386 user_mgr]# vim io.c +535 //查看到的結(jié)果如下顯示 535 DEBUG_PRINT("%s\n", sql); //sql的值是select id, name, remark, grouname from user_resource //執(zhí)行結(jié)果顯示: 與定義相對應(yīng) Debug-- File: io.c, Line: 00535, Function: readfromdb2: select id, name, remark, grouname from user_resource?
總結(jié)
以上是生活随笔為你收集整理的C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MODE ——计算了 任意多个数字的平均
- 下一篇: 函数 —— memset(给数组重新赋值