2014-05-02 3 views
-3

Как написать макрос, чтобы сделать следующий RESOURCEPATH (изображение, menu.png) и получить строку «изображение/menu.png»C++ макрос конкатенации с/слэш

Более продвинутый вопрос: я например, написать макрос для выполнения вышеизложенного, но вывести разные строки в зависимости от условного def (#ifdef IOS, #elif ANDROID #endif), поэтому, если его на выходе iOS на «image/menu.png», и если его на android автоматически выводится на «assets/image/menu.png» (автоматически добавляет «активы /» на передний план), все в одном макросе.

Я надеюсь, что я объяснил свою проблему ясно, спасибо, ребята

+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, пожалуйста, примите этот ответ, если он решил вашу проблему. –

Смежные вопросы