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