Un trigraph (en la familia de idiomas C ) ( eng. trigraph ) es una secuencia de tres caracteres, los dos primeros de los cuales son signos de interrogación (" ??"), y el tercero indica el significado del trigraph. Los trígrafos son procesados por el preprocesador C/C++ .
trigrafo | símbolo equivalente |
---|---|
??= | # |
??/ | \ |
??' | ^ |
??( | [ |
??) | ] |
??! | | |
??< | { |
??> | } |
??- | ~ |
La combinación de tres signos de interrogación (" ???") no es un trigrafo.
En realidad, los trigrafos prácticamente no se utilizan. Algunos compiladores (como gcc ) incluso emiten una advertencia cuando manejan trigraphs.
El motivo de la aparición de los trígrafos es que la página de códigos de siete bits ISO/IEC 646 , adoptada en 1972 y basada en ASCII , asignaba posiciones de carácter " #$@[\]^`{|}~" a caracteres nacionales ( letras suplementarias y símbolos de moneda ). { a[i]='\n'; }Por ejemplo, los alemanes podían ver el código como ä aÄiÜ='Ön'; ü. Para reemplazar los corchetes faltantes, se introdujeron trigraphs.
En Pascal , los dígrafos se usan con el mismo propósito : (. .) (* *)en lugar de [] {}.
Los trígrafos han quedado obsoletos en el estándar C++17 [1] [2] .
Los siguientes son ejemplos del uso del trígrafo “ ??/” reemplazado por el símbolo “ \”. El \carácter " " es un carácter de escape para el carácter de nueva línea .
// ¿Se ejecutará la siguiente línea????????????????/ a ++ ;Después de reemplazar " ??/" con " \", el código a++;de la segunda línea se considerará una continuación del comentario que comenzó en la primera línea.
/??/ * Un comentario *??/ /Después de reemplazar “ ??/” con “ \”, el código especificado será equivalente al código
/* Un comentario */