我想知道如何使用C预处理器将一个#define
‘d的int连接到一个#define
’d的字符串.我的编译器是CentOS5上的GCC 4.1.这个解决方案应该也适用于MinGW.
我想在字符串上附加一个版本号,但我能让它工作的唯一方法是复制定义为字符串的版本号.
我能找到的最接近的是一种引用宏参数的方法,但它不适用于#define
这是行不通的.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
没有#
也不行,因为值是数字,它会扩展到"/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