Je ne sais pas pour vous, mais vous êtes plus susceptible de trouver des bigrammes et trigraphs être utilisé dans les environnements mainframe IBM. L' EBCDIC jeu de caractères n'inclut pas certains caractères qui sont nécessaires pour la C.
L'autre justification pour les bigrammes et trigraphs, 7-bit ASCII-ish jeux de caractères de remplacement de certains caractères de ponctuation, avec des lettres accentuées, est sans doute moins pertinent aujourd'hui.
En dehors de ces milieux, je pense que trigraphs sont plus couramment utilisés par erreur que délibérément, comme dans:
puts("What happened??!");
Pour référence, trigraphs ont été introduites en 1989, dans le C ANSI standard (qui, essentiellement, est devenu l'1990 ISO C standard). Ils sont les suivants:
??= # ??) ] ??! |
??( [ ??' ^ ??> }
??/ \ ??< { ??- ~
Les remplacements se produire n'importe où dans le code source, y compris les commentaires et les littéraux de chaîne.
Bigrammes sont des fautes d'orthographe de certains tokens, et n'affectent pas les commentaires ou les littéraux:
<: [ :> ]
<% { %> }
%: # %:%: ##
Bigrammes ont été introduites par l'1995 amendement à l'1990 ISO C standard.