Поделиться через


Стандартные функции C

Стандартные библиотеки среды выполнения C содержат версии строковых функций в Кодировке Юникод UTF-16 (расширенные символы), которые можно использовать с Юникодом , и байт-ориентированные версии строковых функций, которые можно использовать с символами из однобайтовых наборов символов (SBCS). Тип данных ЮникодА WCHAR совместим с типом данных wchar_t в ANSI C и предоставляет доступ к строковым функциям Юникода. Версии функций в Юникоде начинаются с букв wcs (или иногда _wcs). Тип данных CHAR, используемый для кодовых страниц, совместим с символьным типом данных char в ANSI C, чтобы разрешить доступ к функциям строки символов. Символьные версии функций начинаются с букв "str". Существуют также специальные версии для двухбайтовых наборов символов (DBCS), которые начинаются с букв "_mbs".

Стандартные библиотеки среды выполнения C включают универсальные функции для всех стандартных строковых функций C. Они начинаются с "_tcs" и перечислены в файле заголовка Tchar.h. Эти функции используют универсальный тип данных TCHAR.

Приложение должно добавить следующие строки для использования универсальных функций и компиляции для Юникода.

#define _UNICODE

#include <tchar.h>
#include <wchar.h>

Обратите внимание, что требуются файлы Tchar.h и Wchar.h, а также символ подчеркивания в начале _UNICODE переменной. Эта номенклатура связана со стандартной библиотекой C. "ЮНИКОД", отображаемый без подчеркивания, предназначен для сред выполнения Microsoft Windows.

Функции wcstombs и mbstowcs могут преобразовывать набор символов, поддерживаемый стандартной библиотекой C, в Юникод и обратно с некоторыми ограничениями. Дополнительные сведения о переводе строк в Юникод и из нее см. в разделе Преобразование между строковыми типами.

Функция printf , определенная в Tchar.h, поддерживает те же спецификации формата, что и функции печати Strsafe.h, например StringCbPrintf. Аналогичным образом Tchar.h определяет функцию wprintf , в которой сама строка формата является строкой Юникода.

Внимание!

Плохая обработка буфера связана со многими проблемами безопасности, которые связаны с переполнением буфера. См . Справочник по Strsafe.h. Функции, определенные в Strsafe.h, обеспечивают дополнительную обработку для правильной обработки буфера в коде. Они предназначены для замены встроенных аналогов C/C++, а также конкретных реализаций Microsoft Windows. Дополнительные сведения см. в разделе Вопросы безопасности: международные функции.

 

Юникод в Windows API