ครั้งแรกที่ผมรู้จักภาษา C มีคนบอกผมว่า C เป็นภาษาที่เวลาเขียนจะเกิดข้อผิดพลาดได้ง่ายและหาที่ผิดได้ยากมาก ผมฟังแล้วแอบแย้งในใจว่า ภาษาไหนมันก็ผิดได้ทั้งนั้นถ้าคนเขียนมันเขียนผิด
จนอีกหลายปีถัดมาผมได้มีโอกาสไปเขียนภาษา C บนเครื่อง server แล้วพบว่าภาษา C ที่ผมเคยเขียนได้ กลับ compile ไม่ผ่าน หรือรันแล้วเพี้ยนๆ หรือมี error ผมเลยกลับมาอ่าน textbook ภาษา C ใหม่ คราวนี้อ่านอย่างละเอียด ที่ผ่านมาถึงแม้ว่าผมเขียนโปรแกรมภาษา C มาหลายปี มีโปรแกรมที่ทำงานได้ออกมามากมาย แต่ผมก็ไม่ได้เข้าใจภาษา C จริงๆ การอ่าน textbook ทำให้ผมเข้าใจดีขึ้น และเห็นว่า ภาษา C เกิดข้อผิดพลาดได้ง่ายจริงๆ
ตอนที่ผมเริ่มหัดเขียนภาษา C ผมก็เริ่มแบบที่คนทั่วๆไปทำกัน คือหาหนังสือมาเล่มนึงกับ compiler ตัวนึง แล้วก็เริ่มหัดเขียน พอเริ่มเขียนได้บ้างก็เลิกอ่านหนังสือ แล้วใช้ compiler เป็นครูแทน สงสัยอะไรก็เขียนโปรแกรมทดสอบ แล้ว compile และรันดูว่าใช้ได้หรือเปล่า ผลก็คือผมเขียนภาษา C ที่ถูกต้องตาม compiler กับ platform ที่ผมใช้ ไม่ใช่เขียนภาษา C ที่ถูกต้องตาม standard ของภาษา เรียกได้ว่าถูก compiler หลอกเอาครับ พอเปลี่ยน compiler หรือ platform ก็เลยเกิดปัญหามากมาย ผมเข้าใจว่านี่เป็นปัญหาที่เกิดขึ้นกับคนส่วนใหญ่ด้วย โดยเฉพาะเดี๋ยวนี้ compiler หลายตัว เป็น C/C++ คือใช้ได้ทั้งภาษา C กับ C++ เลยไม่รู้ว่าเป็นภาษาไหนกันแน่ ลองอ่านที่ผมเขียนเล่าไว้ใน entry ที่แล้วดู