硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2526|回复: 5
收起左侧

[emWin] 请教一个C的语法问题

[复制链接]

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2016-10-15 22:15:03 | 显示全部楼层 |阅读模式
需要定义一个宏定义,用来指示软件版本。目前,只找到方法自动调用编译日期,还需要把这个字符串加上一些别的字符串连接起来,怎么搞呢?

比如,

#define PARAM1      10
#define PARAM2     "AAA"

希望得到一个宏定义:   SWVERSION 为 日期+PARAM1+PARAM2   即 2016-10-01-10-AAA
应该怎么写这个宏定义呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115723
QQ
发表于 2016-10-16 11:09:36 | 显示全部楼层
这个还不方便使用预处理连接符##

还是写一个简单的版本获取API函数简单些。
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2016-10-16 21:49:55 | 显示全部楼层
#define VER_MAJOR 10
#define VER_MINOR 123

#define MAKE_VER_STR1(major, minor, date) ("V" #major "." #minor " Build " date)
#define MAKE_VER_STR2(major, minor) MAKE_VER_STR1(major, minor, __DATE__)

#define VER_STRING MAKE_VER_STR2(VER_MAJOR, VER_MINOR)

结果:VER_STRING = "V10.123 Build Oct 16 2016"
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115723
QQ
发表于 2016-10-17 01:53:37 | 显示全部楼层

回 novice 的帖子

novice:#define VER_MAJOR 10
#define VER_MINOR 123

#define MAKE_VER_STR1(major, minor, date) ("V" #major "." #minor " Build " date)
#define MAKE_VER_STR2(major, minor) MAKE_VER_STR1(major, minor, __DATE__)
....... (2016-10-16 21:49) 
[s:151]

只是他的上面其中一个参数是给的数值,不是字符。
回复

使用道具 举报

4

主题

65

回帖

77

积分

初级会员

积分
77
发表于 2016-10-17 09:21:58 | 显示全部楼层
学习了,要求没这个高,目前都是手动写版本号。
准备学习一下楼上的方法。
想问,自动获取编译日期是用什么方法?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115723
QQ
发表于 2016-10-17 09:44:38 | 显示全部楼层

回 luodewei 的帖子

luodewei:学习了,要求没这个高,目前都是手动写版本号。
准备学习一下楼上的方法。
想问,自动获取编译日期是用什么方法? (2016-10-17 09:21) 
关键字 __DATE__ 表示当前编译日期
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-14 12:51 , Processed in 0.306065 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表