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


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

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

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

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

#define _UNICODE

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

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

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

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

Осторожность

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

 

Юникод в API Windows