Использование сопоставления Родов- Текста
Только для систем Microsoft
Чтобы упростить разработку кода для различных международных рынков, библиотека времени выполнения (Майкрософт) предоставляет родов-текста" сопоставления "Майкрософт-специфического для многих типов данных, процедур и других объектов.Эти сопоставления заданы, содержащихся в файле TCHAR.H.Можно использовать эти сопоставления, чтобы написать код, который можно компилировать универсальный шаблон для любого символа - 3 типов наборов: Однобайтовая кодировка ASCII (), mbcs или Юникод, в зависимости от очевидной константы указываются с помощью a #define выписка.Сопоставления Родов-текста расширения Майкрософт, которые не являются совместимости ANSI.
Директивы препроцессора для универсальных текстовых сопоставлений
#define |
Скомпилированная версия |
Пример |
---|---|---|
_UNICODE |
Расширенный символ Юникод () |
_tcsrev сопоставляется функции _wcsrev |
_MBCS |
Многобайтовая кодировка |
_tcsrev сопоставляется функции _mbsrev |
Нет (по умолчанию: ни одного _UNICODE ни _MBCS указано) |
ОДНОБАЙТОВАЯ КОДИРОВКА (ASCII) |
_tcsrev сопоставление strrev |
Например, функция родов-текста _tcsrevопределяется сопоставление, содержащихся в файле TCHAR.H mbsrev If MBCS в программе или _wcsrevIf _UNICODEуказывает.В противном случае - значение _tcsrevсопоставление strrev.
Тип данных родов-текста _TCHARтакже указывается, содержащихся в файле TCHAR.H сопоставления для ввода char If _MBCS определяет, чтобы ввести wchar_t If _UNICODE определяет и типу char если константа не определена.Другие сопоставления типов данных, содержащихся в файле TCHAR.H предоставляются для удобства программирования, но _TCHAR тип, который наиболее полезным.
Универсальные текстовые сопоставления типов данных
Имя типа данных Родов-текста |
Однобайтовая кодировка (), не заданные _UNICODE _MBCS |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_TCHAR |
char |
char |
wchar_t |
_TINT |
int |
int |
wint_t |
_TSCHAR |
signed char |
signed char |
wchar_t |
_TUCHAR |
unsigned char |
unsigned char |
wchar_t |
_TXCHAR |
char |
unsigned char |
wchar_t |
_T или _TEXT |
Не действует (удаляется препроцессором) |
Не действует (удаляется препроцессором) |
L (преобразует следующий символ или строка Юникода в двойникам) |
Полный список сопоставлений родов-текста подпрограмм, переменных и других объектов см. в разделе сопоставления общих текстов.
Следующие фрагменты кода демонстрируют использование _TCHAR и _tcsrev для сопоставления с многобайтовой кодировке юникод, и моделям однобайтовой кодировки.
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
If MBCS определяет сопоставления препроцессора предыдущий фрагмент в следующий код:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
If _UNICODE определяет сопоставление препроцессора, один и тот же фрагмент в следующий код:
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Если ни один _MBCS ни _UNICODE определяет сопоставления препроцессора фрагмент в код ASCII единый-байта следующим образом:
char *RetVal, *szString;
RetVal = strrev(szString);
Таким образом можно написать, поддерживать и компилировать один файл исходного кода для выполнения с процедурами, которые относятся к любым типам наборов знаков - 3.
ЭЛЕМЕНТ, относящийся Майкрософт