2014-05-02 22 views
-3

我怎样写一个宏做以下 RESOURCEPATH(图像,menu.png) 并获得字符串“图像/ menu.png”C++宏连接具有/斜线

更先进的问题:我会喜欢写一个宏来做上面的事情,但是根据条件def(#ifdef IOS,#elif ANDROID #endif)输出不同的字符串,所以如果它在iOS上输出到“image/menu.png”,并且它在android上自动输出到“assets/image/menu.png”(自动将“assets /”附加到前面),全部放在一个宏中。

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

+1

不,不是重复的,这个问题不涉及任何串联。 – hvd

回答

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

的想法是stringize两个参数,所以image变得"image",然后依靠C字符串文字的自动串联插入削减。

+0

谢谢!问题解决了! –

+0

@jamesbond如果它解决了你的问题,请接受这个答案。 –