相关疑难解决方法(0)

使用C预处理器将int连接到字符串

我试图找出如何使用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)

c stringification c-preprocessor

80
推荐指数
2
解决办法
4万
查看次数

标签 统计

c ×1

c-preprocessor ×1

stringification ×1