ภาษาซีสำหรับผู้เริ่มต้น
ข้าพเจ้าหลับตาลงแล้วนึกย้อนกลับไปในวันแรกที่ตนสนใจที่จะเรียนรู้คอมพิวเตอร์ วันที่ 12 สิงหาคม 2535 คือจุดเริ่มต้นของการเรียนรู้เกี่ยวกับคอมพิวเตอร์ของข้าพเจ้า ในยุคนั้นคอมพิวเตอร์ในเมืองไทยนับเป็นเครื่องมือสำหรับบุคคลบางกลุ่มบางพวกเท่านั้น ได้แก่กลุ่มนักวิจัยและครูบาอาจารย์ในสายเทคโนโลยีระดับสถาบันหรือมหาวิทยาลัยภายในประเทศไทย
คอมพิวเตอร์ในยุคแรก ๆ ที่ผมเริ่มต้นใช้ สามารถแสดงสีได้เพียงสีเดียว คือ สีเขียว เรียกว่าจอภาพแบบ Monochrome (Mono แปลว่าหนึ่ง Chrome แปลว่า สี) ในวันนั้นผมยังคงเป็นนักศึกษาหนุ่มที่มีความปรารถนาอยากรู้อยากเห็น และได้ถามประโยคหนึ่งกับ อ.ที่ปรึกษาว่า "อาจารย์ครับ.. เครื่องที่ตั้งอยู่ข้างโต๊ะอาจารย์ คืออะไรหรือครับ ?" เสียงตอบจากท่านอาจารย์ "อ้อ.. เครื่องไมโครคอมพิวเตอร์" ผมถามกลับไปด้วยความสงสัย "มันใช้งานอยากหรือเปล่าครับ ?" คำตอบคือ "อืม.. ไม่ยากหรอก ถ้าสนใจเฮาสิสอนให้" (เฮา หมายถึง ผม หรือ เรา แทนผู้พูด) นับจากนั้นเป็นต้นมา ผมจึงได้เริ่มก้าวสู่เส้นทางสายคอมพิวเตอร์มาโดยตลอด
ในปีนั้น (พ.ศ. 2535) คอมพิวเตอร์ที่ใช้งานมีฮาร์ดดีกส์ซึ่งเป็นแหล่งเก็บข้อมูลซึ่งมีขนาดเพียง 10 MB เท่านั้น ซึ่งถือว่าน้อยมากเมื่อเปรียบเทียบกับปัจจุบันนี้ ผมยังจำได้ว่าระบบปฏิบัติการที่ใช้คือ DOS 2.0 ของบริษัทไมโครซอฟต์ โดยเมื่อเปิดเครื่องคอมพิวเตอร์ขึ้นมาครั้งแรก จะปรากฎข้อความบนจอภาพคอมพิวเตอร์ดังนี้
ถัดจากนั้นแสดงข้อความดังนี้
เมื่อเคาะ Enter 2 ครั้งจะเข้าสู่ DOS PROMPT ดังนี้
ในยุคนั้นบรรดาผู้ใช้คอมพิวเตอร์ภายในประเทศไทยนิยมพิมพ์เอกสารด้วยโปรแกรม CW หรือ RW ซึ่งเป็นโปรแกรมที่สร้างขึ้นโดยมหาวิทยาลัยจุฬาลงกรณ์ และโรงพยาบาลราชวิถี ผมเชื่อว่า นักคอมพิวเตอร์หรือเด็ก ๆ สมัยใหม่ส่วนมากไม่รู้จัก CW และ RW
ผมนับได้ว่าอยู่ในช่วงรอยต่อระหว่างระบบ DOS และ Windows และเป็นช่วงเวลา ที่ได้เรียนรู้ระบบใหม่และเก่าในเวลาเดียวกัน
สมัยก่อนนั้นการสร้างไฟล์ หรือสร้างโฟล์เดอร์จะต้องเข้าใจโครงสร้าง และชุดคำสั่งที่ใช้ในการจัดการเกี่ยวกับไฟล์และโฟลเดอร์ทั้งหลาย ปัจจุบันนี้นักคอมพิวเตอร์รุ่นใหม่ ส่วนใหญ่รู้จักการสร้าง Folder หรือลบและคัดลอกไฟล์ด้วยการลากรูปภาพกราฟิกเพียงไม่กี่ครั้งเท่านั้น นั่นคือความแตกต่างระหว่างช่วงรอยต่อดังกล่าว !!
ปัจจุบันนี้เราสามารถสั่งงานคอมพิวเตอร์ด้วยการกระทำกับภาพกราฟิกได้อย่างสะดวกสบายกว่าในอดีตมากมายนัก แต่เมื่อเราต้องการเขียนโปรแกรมคอมพิวเตอร์ สิ่งที่เรามองข้ามไปคือ ชุดคำสั่งเก่า ๆ ก่อนที่จะมีระบบกราฟิกอย่างทุกวันนี้
ดังนั้น ในความคิดส่วนตัวของผม เชื่อเหลือเกินว่าโปรแกรมเมอร์ หรือผู้ที่ปรารถนาจะเขียนโปรแกรมสำหรับวินโดวส์ ไม่อาจจะหลีกเลี่ยงการเรียนรู้คำสั่ง DOS ไปได้
ดังนั้นก่อนที่ท่านจะได้ศึกษาการเขียนโปรแกรมด้วยภาษา C ผู้เขียนขออนุมานว่าท่านมีความรู้พื้นฐานเกี่ยวกับ DOS มาพอสมควร หากท่านยังไม่รู้จัก DOS ท่านควรจะหาโอกาสศึกษาคำสั่งเหล่านั้นเพิ่มเติมเป็นอันดับแรก
ในครั้งแรกที่ผมเริ่มเขียนโปรแกรมนั้น ได้เขียนจดหมายส่งมายังเพื่อนที่กรุงเทพฯ พร้อมร้องขอให้เพื่อนส่งภาษาซีมาให้ ใช้เวลาร่วม ๆ หนึ่งสัปดาห์ แต่ปัจจุบันนี้ เทคโนโลยีก้าวหน้าไปกว่าก่อนมากมายนัก เราสามารถเชื่อมต่อคอมพิวเตอร์สู่ระบบ Global Network และสามารถค้นหา ดาวน์โหลดภาษาซี เพื่อติดตั้งได้อย่างง่ายดาย
สมัยนั้น ผมใช้ Turbo C 2.0 ซึ่งมีขนาดไม่ถึง 1 MB สามารถบรรจุลงในแผ่น Disket เพียงแผ่นเดียว โปรแกรมแรกที่ผมเขียน เพื่อต้องการแสดงคำว่า Hello World ให้ปรากฎบนจอภาพคอมพิวเตอร์ ซึ่งมีโค๊ดภาษาซีดังนี้
ผลลัพธ์ของโปรแกรมดังกล่าวจะแสดงคำว่า Hello World ให้ปรากฎบนจอภาพคอมพิวเตอร์ หลายคนอาจจะหัวเราะในใจว่า ศึกษามาตั้งเยอะแยะ เพียงแค่แสดงข้อความให้ปรากฎบนจอภาพคอมพิวเตอร์เท่านี้เองหรือ ? แต่ในความเป็นจริง เราสามารถเขียนโปรแกรมเพื่อสั่งให้คอมพิวเตอร์ทำงานได้มากกว่านั้นอีกมากมาย ผมจึงได้เขียนโค๊ดอีกอันหนึ่ง โดยให้แสดงคำว่า Hello World อย่างไม่รู้จบสิ้น ด้วยโค๊ดภาษาซีดังนี้
ในตอนเริ่มต้นนี้ผู้อ่านจะรู้สึกอยากลองเขียนภาษาซีมากขึ้น ต่อไปผมจะได้พาท่านผู้อ่าน ไปดูวิธีการเขียนโปรแกรมตั้งแต่เริ่มต้น จนกระทั่งสามารถสั่งให้มันทำงานได้ ผมมารู้ทีหลังว่า ภาษาซีมีอยู่หลายตัวด้วยกัน เพราะว่าแต่ละตัวถูกผลิตขึ้นมาจากบริษัทต่าง ๆ มากมาย ได้แก่
- Microsoft C ของบริษัทไมโครซอฟต์
- TC และ TC++ ของบริษัท Borland
- BC และ BC++ ของบริษัท Borland
- Keil C (อ่านว่า คาย) ของบริษัท Keil
- Pic C ของบริษัทไมโครซิป
- Visual C++ ของบริษัทไมโครซอฟต์
- Quick C ของบริษัทไมโครซอฟต์
- ภาษาซี ในระบบปฏิบัติการ UNIX
นอกจากนั้นยังมีภาษาซีอีกหลากหลายบริษัทเหลือเกิน แต่ทั้งหมดนั้น ยังคงใช้หลักการเขียนโปรแกรมอันเดียวกันทั้งสิ้น