Макрос _T () изменения для символьных данных UNICODE

У меня есть приложение UNICODE, в котором мы используем _T (x), который определяется следующим образом.

#if defined(_UNICODE)
#define _T(x) L ##x
#else
#define _T(x) x
#endif

Я понимаю, что L определяется как wchar_t, который будет 4 байта на любой платформе. Пожалуйста, поправьте меня, если я ошибаюсь. Мое требование состоит в том, чтобы L составлял 2 байта. Итак, в качестве хака компилятора я начал использовать флаг -fshort-wchar gcc. Но теперь мне нужно, чтобы мое приложение было перемещено в zSeries, где я не могу увидеть эффект флага -fshort-wchar на этой платформе.

Чтобы я мог переносить свое приложение на zSeries, мне нужно чтобы изменить макрос _T () таким образом, чтобы даже после использования L ## x и без использования флага -fshort-wchar мне нужно было получить символьные данные шириной 2 байта. Может ли кто-нибудь сказать мне, как я могу изменить определение L, чтобы что я всегда могу определить L как 2 байта в моем приложении.

6
задан Deduplicator 16 April 2014 в 00:19
поделиться