在軟件版本號中插入編譯時間和日期

手動維護軟件版本號和發佈時間是一件比較麻煩的事情,尤其是當大版本不變,但子版本迭代頻繁的時候,常常忘記更新發布時間,導致版本管理混亂。因此,最方便的方法就是自動嵌入版本編譯時間。

標準C中定義了一些預定義宏,以雙下劃線“__”開頭和結尾,中間字母全部大寫。如下幾種預定義宏是C中常用的幾個:

__FILE__      當前源代碼文件名

__LINE__     當前源代碼行號

__DATE__    編譯日期

__TIME__     編譯時間

__STDC__    若要求程序嚴格符合ANSI標準,則該宏置爲1

所以,要在版本號中嵌入編譯日期和時間,我們可以利用__DATE__和__TIME__兩個預定義宏。示例程序如下:

#include<stdio.h>
#include<string> 

using namespace std;


string get_compile_time_for_version(string main_version_str)
{
	char whole_version_string[200];
	sprintf(whole_version_string, "%s, Released at: %s, %s", main_version_str.c_str(),__DATE__, __TIME__);
	
	return (string)whole_version_string;
}

 
int main(void)
{
	string main_ver_str = "Released version V3.5";
	
	string whole_version = get_compile_time_for_version(main_ver_str);
	
	printf("The whole version string is : %s \n", whole_version.c_str());
	
	return 0;
}

編譯並執行,結果如下,編譯完成後,執行多次,輸出的版本時間都是不變的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章