Un trigraf (în familia C de limbi ) ( ing. trigraf ) este o secvență de trei caractere, primele două dintre acestea fiind semne de întrebare (" ??"), iar al treilea indică semnificația trigrafului. Trigrafele sunt procesate de preprocesorul C/C++ .
trigraf | Simbol echivalent |
---|---|
??= | # |
??/ | \ |
??' | ^ |
??( | [ |
??) | ] |
??! | | |
??< | { |
??> | } |
??- | ~ |
Combinația a trei semne de întrebare (" ???") nu este un trigraf.
În realitate, trigrafele practic nu sunt folosite. Unii compilatori (cum ar fi gcc ) chiar emit un avertisment atunci când manipulează trigrafe.
Motivul apariției trigrafelor este că pagina de coduri pe șapte biți ISO/IEC 646 , adoptată în 1972 și bazată pe ASCII , a atribuit poziții de caractere „ #$@[\]^`{|}~” caracterelor naționale ( litere suplimentare și simboluri valutare ). { a[i]='\n'; }De exemplu, germanii ar putea vedea codul ca ä aÄiÜ='Ön'; ü. Pentru a înlocui parantezele lipsă, au fost introduse trigrafe.
În Pascal , digrafele sunt folosite în același scop : (. .) (* *)în loc de [] {}.
Trigrafele au fost depreciate în standardul C++17 [1] [2] .
Următoarele sunt exemple de utilizare a trigrafului „ ??/” înlocuit cu simbolul „ \”. Caracterul " \" este un caracter de escape pentru caracterul nou linie .
// Următoarea linie va fi executată??????????????????/ a ++ ;După înlocuirea " ??/" cu " \", codul a++;din a doua linie va fi considerat o continuare a comentariului început în prima linie.
/??/ * Un comentariu *??/ /După înlocuirea „ ??/” cu „ \”, codul specificat va fi echivalent cu codul
/* Un comentariu */