我试图找出如何使用C预处理器将#define'd int 连接到#define'字符串.我的编译器是CentOS 5上的GCC 4.1.该解决方案也适用于MinGW.
我想在字符串上附加一个版本号,但我能让它工作的唯一方法是将版本号的副本定义为字符串.
我能找到的最接近的东西是引用宏参数的方法,但它不适用于#defines
这不起作用.
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" #MAJOR_VER #MINOR_VER
Run Code Online (Sandbox Code Playgroud)
它不没有工作,#小号或者是因为值为数字,它会扩大到"/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
Run Code Online (Sandbox Code Playgroud)