C ++宏与/ slash连接

时间:2014-05-02 12:39:43

标签: c++ string macros slash

如何编写宏来执行以下操作 RESOURCEPATH(image,menu.png) 并获取字符串“image / menu.png”

更高级的问题:我想编写一个宏来执行上述操作,但根据条件def(#ifdef IOS,#elif ANDROID #endif)输出不同的字符串,所以如果它在iOS上输出到“图像/菜单” .png“,如果它在Android上自动输出到”assets / image / menu.png“(自动将”assets /“附加到前面),全部在一个宏中。

我希望我已经清楚地解释了我的问题,谢谢你们

1 个答案:

答案 0 :(得分:2)

#ifdef IOS
#  define RESOURCEPATH(DIR, FILE) #DIR "/" #FILE
#else
#  define RESOURCEPATH(DIR, FILE) "assets/" #DIR "/" #FILE
#endif

这个想法是将两个参数字符串化,因此image变为"image",然后依赖C字符串文字的自动连接来插入斜杠。