2014-05-02 27 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如果它解決了你的問題,請接受這個答案。 –