C ไม่มีเทมเพลตเช่น C++ แม้ว่าคุณจะสามารถทำสิ่งที่คล้ายคลึงกันได้ด้วย "ฉลาด" (หรือ WTFey ขึ้นอยู่กับว่าคุณมองอย่างไร) โดยใช้มาโคร define. อย่างไรก็ตาม ลองดูว่า GLib ทำได้อย่างไรสำหรับรายการที่เชื่อมโยงเดี่ยวหรือรายการที่เชื่อมโยงเป็นสองเท่า
ทำไมเราต้องมีเทมเพลตในภาษา C
Templates เป็นกลไกที่ C++ ใช้แนวคิดทั่วไป ง่ายๆ คือ ให้คุณส่งประเภทข้อมูลเป็นพารามิเตอร์ได้ คุณจะได้ไม่ต้อง เขียนโค้ดเดียวกันสำหรับข้อมูลประเภทต่างๆ
C มีเทมเพลตกี่แบบ
ตัวเลือกที่ถูกต้อง: C
มี แม่แบบสองประเภท เป็นเทมเพลตฟังก์ชันและเทมเพลตคลาส
ฉันจะใส่คลาสเทมเพลตได้ที่ไหน
วิธีแก้ปัญหาทั่วไปคือการเขียนการประกาศเทมเพลต ในไฟล์ส่วนหัว จากนั้นปรับใช้คลาสในไฟล์การใช้งาน (เช่น. tpp) และรวมการใช้งานนี้ ไฟล์ที่ส่วนท้ายของส่วนหัว
C++ เพิ่มเทมเพลตเมื่อใด
ไลบรารีเทมเพลตมาตรฐาน ซึ่งเริ่มพัฒนาแนวคิดใน 1979 ก็รวมอยู่ด้วย ในปี พ.ศ. 2546 คณะกรรมการได้ตอบสนองต่อปัญหาหลายอย่างที่มีการรายงานตามมาตรฐานปี 2541 และแก้ไขตามนั้น ภาษาที่เปลี่ยนถูกขนานนามว่า C++03