两个字符串合并
我现在定义了一个宏#if A #define B “abc” #elif #define B “def” #endif,就是如果满足条件A,宏B就是"abc",如果不满足,宏B就是"def",再定义一个宏C,#define C “tffs/”,现在要把宏B和宏C合并为另外一个宏D,我用#define D strcat(C,B),程序老是出错,请问还有其他方法吗 合并 宏 c
[解决办法]
char* strcat(char* dst, char* src);
dst需要是个可写内存,而你:
#define C "tffs/"
替换后是一个字符常量。
#ifdef __A__
#define __B__ "abc"
#else
#define __B__ "def"
#endif
#define __C__ "tffs/"
#define __D__ string(__B__)+__C__
#include <string>
#define __D__ std::string(__B__)+__C__