Trigrafi (C-kieliperheessä ) ( eng. trigraph ) on kolmen merkin sarja, joista kaksi ensimmäistä ovat kysymysmerkkejä (" ??"), ja kolmas osoittaa trigrafin merkityksen. Trigrafit käsitellään C/C++-esiprosessorilla .
trigrafia | Vastaava symboli |
---|---|
??= | # |
??/ | \ |
??' | ^ |
??( | [ |
??) | ] |
??! | | |
??< | { |
??> | } |
??- | ~ |
Kolmen kysymysmerkin (" ???") yhdistelmä ei ole trigrafi.
Todellisuudessa trigrafeja ei käytännössä käytetä. Jotkut kääntäjät (kuten gcc ) jopa antavat varoituksen käsitteleessään trigrafioita.
Syy trigrafien esiintymiseen on se, että vuonna 1972 hyväksytty ja ASCII - pohjainen seitsemänbittinen ISO/IEC 646 -koodisivu määritti merkkipaikat " " kansallisille merkeille ( lisäkirjaimet ja valuuttasymbolit ). Esimerkiksi saksalaiset saattoivat nähdä koodin muodossa . Puuttuvien kiinnikkeiden korvaamiseksi otettiin käyttöön trigrafit. #$@[\]^`{|}~{ a[i]='\n'; }ä aÄiÜ='Ön'; ü
Pascalissa digrafeja käytetään samaan tarkoitukseen : (. .) (* *)sijasta [] {}.
Trigrafit on poistettu käytöstä C++17 - standardissa [1] [2] .
Seuraavassa on esimerkkejä trigrafin " ??/" käytöstä, joka on korvattu symbolilla " \". Merkki " \" on rivinvaihdon merkinvaihtomerkki .
// Suoritetaanko seuraava rivi??????????????????/ a ++ ;Kun " " on korvattu tunnuksella ??/" \", 2. rivin koodia a++;pidetään jatkona 1. rivillä aloitetulle kommentille.
/??/ * Kommentti * ?? / /Kun " " on korvattu ??/kirjaimella " \", määritetty koodi vastaa koodia
/* Kommentti */