1. 程式人生 > >編譯的日期 和時間__DATE__ __TIME__

編譯的日期 和時間__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