โปรเจกต์สุดสัปดาห์: สนุกกับภาษา C
- ภาษา C เรียบง่ายแต่ทรงพลัง จนสามารถเขียนระบบปฏิบัติการทั้งระบบได้ไม่ยาก
- ไวยากรณ์ที่กระชับของภาษา C มีอิทธิพลต่อภาษาที่ตามมาจำนวนมาก เช่น Java และ Go
- ยังมีส่วนทำให้เกิดศิลปะแห่งการทำโค้ดให้อ่านยากอีกด้วย
การประกวด IOCCC
- การประกวด IOCCC เป็นตัวอย่างตัวแทนของการทำโค้ดให้อ่านยาก
- ผลงานที่ส่งเข้าประกวดมักใช้ preprocessor macro ที่ชวนสับสน การจัดรูปแบบที่ไร้ตรรกะ และชื่อตัวแปรที่ไม่ช่วยอะไร
- โค้ดลักษณะนี้อ่านยาก แต่ภาษา C ก็สามารถทั้งอ่านง่ายและชวนสับสนได้ในเวลาเดียวกัน
คำสั่ง switch
- คำสั่ง switch เช่นเดียวกับ if หรือ for คือไม่จำเป็นต้องมีวงเล็บปีกกา
- หากใช้โดยไม่มีวงเล็บปีกกา จะใส่ได้เพียงหนึ่งคำสั่งเท่านั้น
- โดยพื้นฐานแล้ว switch ก็แทบไม่ต่างจาก glorified goto
- การกำหนดค่าเริ่มต้นตัวแปรภายใน switch อาจก่อให้เกิดพฤติกรรมที่ไม่คาดคิด
ป้ายกำกับ case
- ป้ายกำกับ case ไม่จำเป็นต้องอยู่ระดับบนสุดของบล็อก switch
- สามารถใช้ร่วมกับเงื่อนไข
if (0) ได้
- ทำงานได้แม้ไม่มีคำสั่ง break
การผสม else กับ if
- สามารถใช้ else และ if แทนคำสั่ง switch ได้
- จัดการหลายเงื่อนไขได้แม้ไม่มีวงเล็บปีกกา
ส่วนขยายของ GNU
- สามารถใช้ตัวดำเนินการ
&& เพื่อรับ address ของ label แล้วกระโดดด้วย goto ได้
- ทำให้สามารถใช้แทนคำสั่ง switch ได้
การแทนที่คำสั่ง for
- สามารถทำลูปได้ด้วยการใช้ label ภายในการประกาศตัวแปร
- แม้จะใช้ได้เฉพาะกับ GCC แต่ก็ยังสามารถเขียนโค้ดที่ทั้งสร้างสรรค์และชวนสับสนมากด้วยภาษา C ได้
บทสรุป
- ภาษา C เปิดโอกาสให้เขียนโค้ดที่สร้างสรรค์และชวนสับสนได้อย่างมาก
- แม้โค้ดลักษณะนี้จะอ่านยาก แต่ก็แสดงให้เห็นถึงพลังของภาษา C
ความเห็นของ GN⁺
- บทความนี้แสดงให้เห็นความสร้างสรรค์และความซับซ้อนของภาษา C ได้เป็นอย่างดี
- มีประโยชน์ต่อการสำรวจความเป็นไปได้อันหลากหลายของการใช้งานภาษา C
- แง่มุมเชิงศิลปะอย่างการทำโค้ดให้อ่านยากก็น่าสนใจเช่นกัน
- ตัวอย่างที่ใช้ส่วนขยายของ GNU มีความแปลกใหม่และสร้างสรรค์มาก
- สำหรับนักพัฒนามือใหม่ที่กำลังเรียนภาษา C เนื้อหาอาจค่อนข้างยาก
ยังไม่มีความคิดเห็น