Curiosa sequenza del trigrafo su Ansi C
Domanda
Qual era il motivo originale da usare sequenza di trigrafe di alcuni carattere per diventare altri carattere in ansi come:
??=define arraycheck(a, b) a??(b??) ??!??! b??(a??)
diventa
#define arraycheck(a, b) a[b] || b[a]
Soluzione
Risposta breve: tastiere/codifica dei caratteri che non includevano tali grafici.
Da Wikipedia:
Il set di caratteri di base del linguaggio di programmazione C è un superset del set di caratteri ASCII che include nove caratteri che si trovano al di fuori del set di caratteri invarianti ISO 646. Ciò può rappresentare un problema per la scrittura di codice sorgente quando la tastiera utilizzata non supporta nessuno di questi nove caratteri. Il comitato ANSI C ha inventato i trigrafi come un modo per inserire il codice sorgente utilizzando tastiere che supportano qualsiasi versione del set di caratteri ISO 646.
Altri suggerimenti
Alcune vecchie tastiere non avevano caratteri specifici su di essi, quindi la lingua ha funzionato attorno ad essa permettendoti di usare i trigrafi.