当前位置: 首页 > news >正文

软件版本号制定方法

需求

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

相关文章:

  • 蓝桥杯C++基础算法-多重背包
  • quartz.net条件执行
  • python基于spark的心脏病患分类及可视化(源码+lw+部署文档+讲解),源码可白嫖!
  • 【QA】Qt中有哪些命令模式的运用?
  • AI日报 - 2025年3月24日
  • Langchain4J框架相关面试题
  • 施磊老师高级c++(五)
  • 知识库已上线
  • 同步双写与删缓存在缓存一致性的实践对比
  • linux---------进程概念(上)
  • Linux内核,内存分布
  • Python与数据库
  • ubuntu虚拟机上定制文件系统
  • AI Agent开发大全第六课-AI对话界面参数全解析
  • 解锁二叉树:高效存储与搜索的秘密武器
  • 物化视图详解:数据库性能优化的利器
  • Vs code搭建uniapp-vue项目
  • 【Linux网络-五种IO模型与阻塞IO】
  • 23种设计模式-生成器(Builder)设计模式
  • k8s kubernetes dashboard一直CarshLoopBackoff
  • 国家统计局:2024年城镇单位就业人员工资平稳增长
  • 《日出》华丽的悲凉,何赛飞和赵文瑄演绎出来了
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部
  • 马上评|让查重回归促进学术规范的本意
  • 多个侵华日军细菌战部队留守名簿文件首次公布
  • “典孝急乐批麻蚌赢”:互联网“八字真言”与当代赛博赢学