Compartir a través de


Trígrafos

El juego de caracteres de origen de programas de código fuente C está incluido dentro del juego de caracteres ASCII de 7 bits, pero es un superconjunto del conjunto de códigos invariantes ISO 646-1983. Las secuencias de trígrafos permiten escribir programas de C usando solo el conjunto de códigos invariantes ISO (International Standards Organization). Los trígrafos son secuencias de tres caracteres (introducidos por dos signos de interrogación consecutivos) que el compilador reemplaza por sus caracteres de puntuación correspondientes. Puede usar trígrafos en los archivos de código fuente C con un juego de caracteres que no contenga representaciones gráficas adecuadas para algunos caracteres de puntuación.

En la tabla siguiente se muestran nueve secuencias de trígrafos. Todas las apariciones en un archivo de código fuente de los caracteres de puntuación de la primera columna se reemplazan por el carácter correspondiente de la segunda columna.

Secuencias de trígrafos

Trígrafo

Carácter de puntuación

??=

#

??(

[

??/

\

??)

]

??'

^

??<

{

??!

|

??>

}

??-

~

Un trígrafo siempre se trata como un único carácter de origen. La traducción de los trígrafos tiene lugar en la primera fase de traducción, antes del reconocimiento de caracteres de escape en literales de cadena y constantes de caracteres. Solo se reconocen los nueve trígrafos mostrados en la tabla anterior. El resto de las secuencias de caracteres se quedan sin traducir.

La secuencia de escape de caracteres, \?, evita la interpretación incorrecta de secuencias de caracteres que se parecen a un trígrafo. (Para obtener más información acerca de las secuencias de escape, vea Secuencias de escape). Por ejemplo, si intenta imprimir la cadena What??! con esta instrucción printf

printf( "What??!\n" );

la cadena impresa es What| porque ??! es una secuencia de trígrafos que se reemplaza por el carácter |. Escriba la instrucción de la forma siguiente para imprimir correctamente la cadena:

printf( "What?\?!\n" );

En esta instrucción printf, un carácter de escape de barra diagonal inversa delante del segundo signo de interrogación evita la interpretación incorrecta de ??! como trígrafo.

Vea también

Referencia

Identificadores de C