พื้นหลัง
ชุดตัวอักษร ISO-646 ไม่มีตัวอักษรครบสำหรับ syntax ของ C ดังนั้นบางระบบที่มีคีย์บอร์ด/หน้าจอที่ไม่รองรับตัวอักษรบางตัว สามารถสร้างตัวอักษรเหล่านั้นได้ด้วยลำดับ 3 ตัวอักษร เรียกว่า Trigraphs
ใน C, ก่อนการประมวลผลอื่นๆ ทุกครั้งที่พบ trigraph sequence จะถูกแทนที่ด้วยตัวอักษรเดี่ยว
ตาราง Trigraphs
| Trigraph | แทนที่ด้วย | Trigraph | แทนที่ด้วย | Trigraph | แทนที่ด้วย |
|---|---|---|---|---|---|
| ??= | # | ??( | [ | ??< | { |
| ??/ | \ | ??) | ] | ??> | } |
| ??' | ^ | ??! | | | ??- | ~ |
สถานะปัจจุบัน
Trigraphs มีอยู่เพื่อเหตุผลทางประวัติศาสตร์ ตอนนี้คีย์บอร์ดสมัยใหม่รองรับตัวอักษรครบแล้ว แต่ก่อนหน้านี้บางคีย์บอร์ดยุโรปไม่มีตัวอักษรบางตัว จึงมีการสร้าง trigraphs ขึ้น
หมายเหตุ: C++17 ได้ deprecated trigraphs แล้ว และ C++20 ลบออกไปอย่างสมบูรณ์