Compartir a través de


Usar asignaciones de texto genérico

Específicos de Microsoft

Para simplificar el desarrollo de código para varios mercados internacionales, la biblioteca en tiempo de ejecución de Microsoft proporciona asignaciones de "texto genérico" específicas de Microsoft para muchos tipos de datos, rutinas y otros objetos. Estas asignaciones se definen en TCHAR.H. Puede usar estas asignaciones de nombres para escribir código genérico que se puede compilar para cualquiera de los tres tipos de juegos de caracteres: ASCII (SBCS), MBCS o Unicode, en función de una constante de manifiesto que se define mediante una instrucción #define. Las asignaciones de texto genérico son extensiones de Microsoft que no son compatibles con ANSI.

Directivas de preprocesador para asignaciones de texto genérico

#define Versión compilada Ejemplo
_UNICODE Unicode (carácter ancho) _tcsrev se asigna a _wcsrev
_MBCS Carácter multibyte _tcsrev se asigna a _mbsrev
Ninguno (valor predeterminado: y _UNICODE_MBCS no definido) SBCS (ASCII) _tcsrev se asigna a strrev

Por ejemplo, la función de texto genérico _tcsrev, definida en TCHAR.H, se asigna a mbsrev si se ha definido MBCS en el programa, o a _wcsrev si se ha definido _UNICODE. De lo contrario, _tcsrev se asigna a strrev.

El tipo de datos de texto genérico _TCHAR, también definido en TCHAR. H, se asigna al tipo char si se ha definido _MBCS, al tipo wchar_t si se ha definido _UNICODE y al tipo char si no se ha definido ninguna constante. Las asignaciones de otros tipos de datos se proporcionan en TCHAR.H para mayor comodidad en la programación, pero _TCHAR es el tipo más útil.

Asignaciones de tipos de datos de texto genérico

Nombre de tipo de datos de texto genérico SBCS (_UNICODE, _MBCS no definidos) _MBCS definido _UNICODE definido
_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 o _TEXT Sin efecto (quitado por el preprocesador) Sin efecto (quitado por el preprocesador) L (convierte el carácter o la cadena siguiente en su equivalente de Unicode)

Para obtener una lista completa de asignaciones de texto genérico de rutinas, variables y otros objetos, consulte Asignaciones de texto genérico.

Los siguientes fragmentos de código muestran el uso de _TCHAR y _tcsrev para la asignación a los modelos MBCS, Unicode y SBCS.

_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);

Si se ha definido MBCS, el preprocesador asigna el fragmento anterior al siguiente código:

char *RetVal, *szString;
RetVal = _mbsrev(szString);

Si se ha definido _UNICODE, el preprocesador asigna el mismo fragmento al siguiente código:

wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);

Si no se han definido y _MBCS_UNICODE , el preprocesador asigna el fragmento al código ASCII de un solo byte, como se indica a continuación:

char *RetVal, *szString;
RetVal = strrev(szString);

Estas macros permiten escribir, mantener y compilar un único archivo de código fuente mediante rutinas específicas de los tres tipos de juegos de caracteres.

FIN de Específicos de Microsoft

Consulte también

Asignaciones de texto genérico
Asignaciones de tipos de datos
Asignaciones de variables constantes y globales
Asignaciones de rutinas
Un programa de texto genérico de ejemplo