在软件版本号中插入编译时间和日期

手动维护软件版本号和发布时间是一件比较麻烦的事情,尤其是当大版本不变,但子版本迭代频繁的时候,常常忘记更新发布时间,导致版本管理混乱。因此,最方便的方法就是自动嵌入版本编译时间。

标准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;
}

编译并执行,结果如下,编译完成后,执行多次,输出的版本时间都是不变的。

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