C语言软件版本号宏定义的高级技巧
在编写程序的时候,经常会用到VERSION,用来表示程序的版本号
有的时候我们还希望里面加个日期,例如: "System V2.0.1.2017.9.13"
又有的时候我们只想读出数字版本号,例如2, 0, 1,有的时候又想如果想将里面的2, 0, 1这3 个数字提取出来,该怎么做呢?
通常做法是这样的:
#define MAINVER 2
#define SUBVER1 0
#define SUBVER2 1#define VERSTR "System V2.0.1.2017.9.13"
如果想修改下版本号,即需要修改前面3 个数字宏,又要修改后面的字符串宏,最后还得将日期写上;
那有没有什么办法将工作量减小到最少,只要更改前面3 个宏就可以了呢?
答案当然是可以的了,请看:
#define MAINVER 2
#define SUBVER1 0
#define SUBVER2 1#define STR(s) #s
#define VERSION(a,b,c) "System V" STR(a) "." STR(b) "." STR(c) " "__DATE__
//#define VERSTR "System V2.0.1.2017.9.13"void main()
{printf("%s\n",VERSION(MAINVER,SUBVER1,SUBVER2));getch();
}
说明: 这个日期是当前文件被编译的生成日期,如果您没有修改这个文件,那日期是不会变的,我想您修改了代码也一定
不会忘记修改下版本号,所以这个日期字符串肯定是当前的日期;还有一点,这个日期的格式我目前找不到自定义的办法
如果有知道的欢迎留言告诉我~
C语言软件版本号宏定义的高级技巧相关推荐
- C语言软件版本号组成和定义
软件版本号规范 一.软件版本号由四部分组成: 1. 主版本号 - X 2 .子版本号 - Y 3. 阶段版本号 - Z 4.日期版本号加希腊字母版本号(可选) 常用的希腊字母版本号:alpha.bet ...
- C语言 常量和宏定义
C语言:常量和宏定义 什么是常量 常量的类型 定义符号常量(宏定义) 标识符是什么 字符串常量 代码 什么是常量 在程序运行时,值不能被改变的量,称之为常量. 常量的类型 整型常量:520,1314, ...
- 【C语言】高级宏定义
前言 宏定义分为不带参数的宏定义和带参数的宏定义,不带参数的宏定义就是普通的宏定义,带参数的宏定义则稍稍复杂.下面将结合一些例子讲解这些显得比较高级的宏定义. 文章目录 前言 一.高级宏定义 1.#d ...
- C语言中关于宏定义的学习
1.C语言中宏定义的使用 2.GCC官方文档 3.C语言宏定义的几个坑和特殊用法 转载于:https://www.cnblogs.com/Brandon0807/p/11146344.html
- 【必知 - 软件版本号如何定义及使用】
大家好,好久没见.前段时间一直在找工作,很少更新. 这不,新的工作,新的奔头,一直努力熟悉. 我们的项目简单说是一款 数藏,虽简单说,但实际可不简单.感兴趣的话,就来看看吧,进入 -> 纳灵境 ...
- C语言中#、##宏定义的用法
一.#的用法 #用于编译器编译过程进行预处理. 1.宏定义 #define ON 1#ifndef _PARA_ #define _PARA_ #enddef#ifdef _PARB_ #define ...
- 【C语言进阶】 宏定义实现字符串引用
宏定义实现字符串引用 原理 最简单的引用策略 使用#进行转义 原理 用宏定义实现字符串引用: 这种做法在编译的时候直接给宏名所对应的字符串 分配了一个内存地址空间,可以进行字符串输出.地址打印.指针操 ...
- C语言 带参数宏定义中 # 和 ## 知识点总结、代码分析
目录 一.宏定义中 "#"知识点 1.直接转换字符串,不展开. 2.转换出的结果一定是"字符串". 二.宏定义中 ## 知识点 1.应用场景 2."# ...
- C语言字符串、宏定义及主函数介绍
希望你每天醒来都是阳光的,不会因为别人的几句话.几个表情和几个举止,影响自己的心情,好好生活,总会遇见美好的事... ---- 网易云热评 一.字符串 1.字符串声明 #include <st ...
最新文章
- linux服务器存放规划,规划适用于 Linux 和 UNIX 服务器的客户端部署
- 1.2-Nginx编译安装
- Spring 实践 -AOP
- 网络游戏:为什么失败
- gpu tensorflow 怎么看是否安装成功_安装keras模块以及使用GPU加速
- 开源2D图形库/图形框架
- “华为”和“荣耀”手机有什么区别?
- c语言输出所有英文字母,菜鸟求助,写一个随机输出26个英文字母的程序
- vijos1053 用spfa判断是否存在负环
- python编程之处理GB级的大型文件
- uni-app 商城源码
- php $stmt,PHP在stmt准备和执行语句后获取结果
- Mac升级python版本
- sqlmanager mysql5_SQL Manager for MySQL
- 笔记本电脑黑屏 笔记本开机黑屏 笔记本黑屏怎么办
- C++小作业——简单通讯录设计
- Spring学习笔记(五):JDBCTemplate+事务管理
- IBM SPSS Modeler使用技巧 ----参数及全局变量的使用
- 对话机器人在瓜子的实践
- 远程命令/代码执行漏洞(RCE)总结