02 junio 2007

Trigrafos en C

Hoy he descubierto de casualidad una característica muy extraña de C (y totalmente inútil hoy en día). Resulta que cuando apareció C, no todos los teclados y los sistemas operativos soportaban los caracteres como #[]{}. Para poder escribir programas en C en estos sistemas se inventaron los trigrafos, que son combinaciones de 3 caracteres que representan esos símbolos.

Esta es una lista de trigrafos extraída de la wikipedia.


Trigraph Equivalent
======== ==========
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~


A continuación pongo un Hola mundo creado por mí utilizando trigrafos para codificar algunos caracteres:

??=include <stdio.h>
int main(int argc, char argv??(??))
??<
printf("Hola mundo!!??/n");
??>

GCC no compila directamente este programa, hemos de pasarle -trigraphs como argumento para que compile correctamente.

gcc -trigraphs holamundotrigraph.c