使用以 10.0.0 形式定义版本号的宏

Posted

技术标签:

【中文标题】使用以 10.0.0 形式定义版本号的宏【英文标题】:Using macros that define version numbers in the form 10.0.0 【发布时间】:2018-09-29 14:51:58 【问题描述】:

我用 Mathematica C 头文件编译我的 C 代码之一。 Mathematica 使用一个宏来告诉您您正在使用哪个版本。格式是

#define WSMATHVERSION 10.0.0

我比较熟悉宏中的这种版本编号模式,

//  BOOST_VERSION % 100 is the patch level
//  BOOST_VERSION / 100 % 1000 is the minor version
//  BOOST_VERSION / 100000 is the major version

#define BOOST_VERSION 103900

我喜欢这个,因为它更容易检查版本号是否大于特定版本。有没有使用 Mathematica 风格的规范方法?我发现 too many decimal points in number 类型错误等。我使用的是 C,但仅 C++ 的解决方案也可能很有趣。

【问题讨论】:

这是 c 还是 c++,请澄清他的答案可能不同。 使该值的内容合法的 C 语法的唯一方法是 stringify it。 @KamiKaze C;见编辑 Q 最好在mathematica.stackexchange.com问这个问题。 @Lundin 不确定,这是关于 C 预处理器宏而不是数学语言。 【参考方案1】:

在 C 中,预处理器条件只能由整数组成。所以,很遗憾,用 WSMATHVERSION 宏编写预处理器条件是不可能的。

【讨论】:

以上是关于使用以 10.0.0 形式定义版本号的宏的主要内容,如果未能解决你的问题,请参考以下文章

探寻不同版本号的SDK对iOS程序的影响

增加内部版本号的更好方法?

改进版本号的精确数据权限定义和实现

版本号的正则表达式

版本号的正则表达式

版本号的比较