我试图弄清楚如何使用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
它不没有工作,#
小号或者是因为值为数字,它会扩大到"/home/user/.myapp" 2 6
,这是无效的Ç。
确实可以,但是我不喜欢定义版本的副本,因为我确实也需要它们作为数字。
#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