我试图弄清楚如何使用C#define
预处理器将'd int 连接到#define
'd 字符串。我的编译器是 CentOS 5 上的 GCC 4.1。该解决方案也应该适用于 MinGW。
我想将版本号附加到字符串上,但我可以让它工作的唯一方法是将版本号定义为字符串的副本。
我能找到的最接近的方法是引用宏参数的方法,但它不适用于#define
s
这是行不通的。
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
没有#
s 也无法工作,因为值是数字,它会扩展为"/home/user/.myapp" 2 6
,这不是有效的C。
这确实有效,但我不喜欢版本定义的副本,因为我也需要它们作为数字。
#define MAJOR_VER 2
#define MINOR_VER 6
#define MAJOR_VER_STR "2"
#define MINOR_VER_STR "6"
#define MY_FILE "/home/user/.myapp" MAJOR_VER_STRING MINOR_VER_STRING