需求
1、软件版本号由主版本号,子版本号,修复版本号组成
2、版本号信息由版本号+当日编译的时间组成
3、编写一个获取版本号的函数。
实现
实现的例子如下:
#include <stdio.h>// 定义版本号的组成部分
#define VERSION_MAJOR 1
#define VERSION_MINOR 2
#define VERSION_PATCH 3 // 将宏参数转换为字符串
#define STRINGIFY(x) #x // 间接宏展开
#define EXPAND_AND_STRINGIFY(x) STRINGIFY(x)// 拼接版本号字符串
#define VERSION_STRING(major, minor, patch) \EXPAND_AND_STRINGIFY(major) "." EXPAND_AND_STRINGIFY(minor) "." EXPAND_AND_STRINGIFY(patch)// 定义版本号宏,包含编译时间
#define FULL_VERSION_STRING \"Version: " VERSION_STRING(VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH) \" (Compile Time: " __DATE__ " " __TIME__ ")"// 获取版本号的函数
const char* get_version() {return FULL_VERSION_STRING;
}int main() {// 调用函数获取并输出版本号 printf("%s\n", get_version());return 0;
}