cat =13 ; main() { write( cat-~-cat ,"Hello, world!" , cat); putchar(~-~-~-cat); }
La déclaration cat =13 ; est valide en C K&R mais obsolète en ANSI C : elle est équivalente à int cat =13 ; Cette forme est cependant encore généralement acceptée (avec un warning) par les compilateurs. La suite ne fonctionne correctement que sur une machine satisfaisant aux deux contraintes suivantes :
~-x
vaut x - 1
.
cat-~-cat
vaut 1 qui, en premier paramètre de write
désigne la sortie standard, et ~-~-~-13
vaut 10 (le code de
newline).
Le troisième paramètre passé à write doit être la longueur de la chaîne à
imprimer, ici 13 qui est bien la longueur de Hello, world!
.
Au final, ce programme imprime « Hello world ».