Funciones estándar de C

Las bibliotecas de tiempo de ejecución estándar de C contienen versiones unicode UTF-16 (caracteres anchos) de funciones de cadena que se pueden usar con versiones Unicode y orientadas a bytes de funciones de cadena que se pueden usar con caracteres de conjuntos de caracteres de un solo byte (SBCS). El tipo de datos Unicode WCHAR es compatible con el tipo de datos wchar_t en ANSI C y permite el acceso a las funciones de cadena Unicode. Las versiones Unicode de las funciones comienzan con las letras "wcs" (o a veces "_wcs"). El tipo de datos CHAR usado para las páginas de códigos es compatible con el carácter de tipo de datos char en ANSI C, para permitir el acceso a las funciones de cadena de caracteres. Las versiones de caracteres de las funciones comienzan con las letras "str". También hay versiones especiales para juegos de caracteres de doble byte (DBCS) que comienzan con las letras "_mbs".

Las bibliotecas estándar del entorno de ejecución de C incluyen funciones genéricas para todas las funciones de cadena de C estándar. Comienzan con "_tcs" y se enumeran en el archivo de encabezado Tchar.h. Estas funciones usan el tipo de datos TCHAR genérico.

Una aplicación debe agregar las líneas siguientes para usar las funciones genéricas y compilar para Unicode.

#define _UNICODE

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

Tenga en cuenta que los archivos Tchar.h y Wchar.h son necesarios y que también se requiere el subrayado inicial en la variable _UNICODE. Esta nomenclatura es específica de la biblioteca estándar de C. "UNICODE" representado sin el carácter de subrayado es para los entornos de ejecución de Microsoft Windows.

Las funciones wcstombs y mbstowcs pueden convertir del juego de caracteres admitido por la biblioteca estándar de C a Unicode y atrás, con algunas limitaciones. Para obtener más información sobre cómo traducir cadenas hacia y desde Unicode, vea Traducción entre tipos de cadena.

La función printf definida en Tchar.h admite las mismas especificaciones de formato que las funciones de impresión de Strsafe.h, por ejemplo StringCbPrintf. Del mismo modo, Tchar.h define una función wprintf , en la que la propia cadena de formato es una cadena Unicode.

Precaución

El control deficiente del búfer está implicado en muchos problemas de seguridad que implican saturaciones de búfer. Consulte Strsafe.h Reference( Referencia de Strsafe.h). Las funciones definidas en Strsafe.h proporcionan procesamiento adicional para el control adecuado del búfer en el código. Están diseñados para reemplazar sus homólogos integrados de C/C++, así como implementaciones específicas de Microsoft Windows. Para obtener más información, vea Consideraciones de seguridad: Características internacionales.

 

Unicode en la API de Windows