編譯的日期 和時間__DATE__ __TIME__
文章是轉載的,附上自己測試的程式碼,by:purple塵
#include<stdio.h>
int main() {
printf("%d\n", __LINE__);
printf("%s\n", __TIME__);
printf("%s\n", __DATE__);
printf("%s\n", __FILE__);
return 0;
}
ANSIC標準定義了以下6種可供C語言使用的預定義巨集:
__LINE__ 在原始碼中插入當前原始碼行號
__FILE__ 在原始碼中插入當前原始碼檔名
__DATE__ 在原始碼中插入當前編譯日期〔注意和當前系統日期區別開來〕
__TIME__ 在原始碼中插入當前編譯時間〔注意和當前系統時間區別開來〕
__STDC__ 當要求程式嚴格遵循ANSIC標準時該識別符號被賦值為1。
__cplusplus
識別符號__LINE__和__FILE__通常用來除錯程式;
識別符號__DATE__和__TIME__通常用來在編譯後的程式中加入一個時間標誌,以區分程式的不同版本;
這四個都是預編譯巨集,不是包含在標頭檔案中的
__FILE__是當前編譯的檔案的檔名 是一個字串
__TIME__是當前編譯的檔案的編譯時間 格式是hh:mm:ss 是字串
__DATE__是當前編譯的檔案的編譯日期 格式是Mmm:dd:yyyy 是字串
__LINE__是呼叫該巨集語句所在的行數,是個十進位制數
用在巨集定義中
譬如:
#define TEST (__FILE__" "__TIME__) /*這個括號沒有也行的*/
int main(void)
{
printf(TEST);
return 0;
}
假如該程式碼的檔名叫console.cpp
那麼會輸出檔名加編譯時間
.\console.cpp 21:34:22