如何在 C 中将无符号定义变量转换为有符号定义变量
-
21-12-2019 - |
题
#define VERSION 1U
#define _VALUE_TO_STRING(x) #x
#define VALUE_TO_STRING(var) _VALUE_TO_STRING(var)
#define VERSION_STRING VALUE_TO_STRING(VERSION)
char readMe[] = "The current version of this document is " VERSION_STRING ".";
...
我有这部分代码,我需要在初始化时创建一个全局字符串(readMe)。上述代码的输出将是 -> 该文档的当前版本是 1U。所以我想要的是摆脱那个“U”。我是否有机会使用预处理器函数修复此问题?(例如将无符号定义值转换为有符号定义值...)?
解决方案
我认为没有预处理器方法可以取出 U
从 VERSION
. 。但是,您可以将它们组合起来。我会建议:
#define UNSIGNED_VERSION 1
#define VERSION UNSIGNED_VERSION ## U
#define _VALUE_TO_STRING(x) #x
#define VALUE_TO_STRING(var) _VALUE_TO_STRING(var)
#define VERSION_STRING VALUE_TO_STRING(UNSIGNED_VERSION)
char readMe[] = "The current version of this document is " VERSION_STRING ".";
不隶属于 StackOverflow