自動生成編譯時間,可以實現版本管理

2022-04-27 14:16:30 字數 1021 閱讀 6370

在很多情況下,我們實行版本的管理,我們除了定義軟體版本號外,還會定義個編譯時間。但是如果通過陣列定義編譯時間,每次編譯我們都需要手動修改,非常麻煩,而且有時候,還會忘記。其實我們不需要這麼複雜,編譯器一般都會提供乙個巨集用於自動獲取編譯時間。下面就以mdk為例進行說明:

ansic標準定義了以下6種可供c語言使用的預定義巨集:

line在源**中插入當前源**行號

file在源**中插入當前源**檔名

date在源**中插入當前編譯日期〔注意和當前系統日期區別開來〕

time在源**中插入當前編譯時間〔注意和當前系統時間區別開來〕

stdc當要求程式嚴格遵循ansic標準時該識別符號被賦值為1。

__cplusplus

識別符號linefile通常用來除錯程式;

識別符號datetime通常用來在編譯後的程式中加入乙個時間標誌,以區分程式的不同版本;

這四個都是預編譯巨集,不是包含在標頭檔案中的

file是當前編譯的檔案的檔名 是乙個字串

time是當前編譯的檔案的編譯時間 格式是hh:mm:ss 是字串

date是當前編譯的檔案的編譯日期 格式是mmm:dd:yyyy 是字串

line是呼叫該巨集語句所在的行數,是個十進位制數

用在巨集定義中

譬如:

#define test (__file__

" "__time__) /*這個括號沒有也行的*/

int main(void)

C 基於編譯時間自動生成版本號

我們希望每次編譯發布程式都有不同的版本號。但是每次編譯都需要修改版本號特別麻煩。本文介紹一種基於編譯時間生成版本號的方法。c c 編譯器會內建有兩個獲取編譯時間的巨集 date 和 time include int main void 輸出 date may 14 2020 time 19 34 5...

Django 實現根據時間間隔自動生成溫度

直接上 記錄間隔 import datetime import random import time gap 5 單位分 temp list 宣告當前時間 time start datetime.datetime.now print time start 間隔時間 time.sleep 10 宣告結...

在VS 專案中利用Git自動生成編譯版本資訊

對於源 一直在迭代更新的專案,希望在每次生成專案的時候,都能自動地更新 中的版本資訊,以便測試發現問題的時候,能跟蹤到對應版本的源 此處以vs c c 專案為例,看怎麼利用git自動生成版本資訊。1.獲取版本資訊,儲存到 h 檔案。利用git log命令獲取當前工作目錄的版本資訊.git log 1...