ทฤษฎี
โครงสร้างโปรแกรมของภาษาซี
โปรแกรมที่เขียนด้วยภาษาซีจะต้องเขียนตามโครงสร้างโปรแกรมดังตัวอย่าง
ถ้าโปรแกรมที่เขียนโดยขัดแย้งกับโครงสร้างโปรแกรมนี้ จะทำให้การคอมไพล์โปรแกรมเกิดความผิดพลาด (Compilation Error)
ส่วนประกอบในโครงสร้างโปรแกรมของภาษาซี
1. ส่วนหัวของโปรแกรม (Header)
บางที่เรียกว่า Preprocessor Directives ใช้บอกให้คอมไพเลอร์เตรียมการบางอย่าง ก่อนทำการแปลโปรแกรม
ในตัวอย่างด้านบนส่วนหัวของโปรแกรม คือคำสั่ง #include <stdio.h> บอกให้คอมไพเลอร์ให้นำเอาเฮดเดอร์ไฟล์ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย
การกำหนด preprocessor directives นี้จะต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ
คำสั่งที่ใช้ระบุให้คอมไพเลอร์นำเฮดเดอร์ไฟล์เข้าร่วมในการแปลโปรแกรม สามารถเขียนได้ 2 รูปแบบ คือ
1) #include
<ชื่อเฮดเดอร์ไฟล์
> คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟล์ที่ระบุ ในไดเรกทอรีที่ใช้เก็บเฮดเดอร์ไฟล์โดยเฉพาะ (โดยปกติจะเก็บไว้ในไดเรกทอรีชื่อ include)
2) #include
“ชื่อเฮดเดอร์ไฟล์
” คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟล์ที่ระบุ ในไดเร็คทอรีเดียวกันกับไฟล์ source code นั้น แต้ถ้าไม่พบจึงจะไปค้นหาไดเร็คทอรีที่ใช้เก็บเฮดเดอร์ไฟล์โดยเฉพาะ
2. ส่วนของฟังก์ชั่นหลัก (main)
ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main()
โปรแกรมภาษาซีทุกโปรแกรมที่สามารถรันได้ จะต้องมีฟังก์ชั่นนี้อยู่ในโปรแกรมเสมอ
ขอบเขตของฟังก์ชั่นจะถูกกำหนดด้วยเครื่องหมาย { และ }
การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย }
3. ส่วนการประกาศตัวแปร (Variable declaration)
เป็นส่วนของการประกาศตัวแปรเพื่อนำไปใช้ในโปรแกรม
ก่อนนำตัวแปรไปใช้งานต้องมีการประกาศตัวแปรก่อน
โปรแกรมภาษาซี ไม่สามารถใช้ตัวแปรใด ๆ ได้หากไม่ได้ประกาศตัวแปรไว้ก่อน
ทั้งนี้ตัวแปร มักจะประกาศไว้ส่วนบน ก่อนการดำเนินการใด ๆ ในฟังก์ชั่น
4. ส่วน Body
ส่วน Body หรือส่วนตัวโปรแกรม หรือส่วนเนื้อความของฟังก์ชันในโปรแกรมภาษาซี
หมายถึง คำสั่งทำงาน หรือการสั่งโปรแกรมทำการดำเนินการ อย่างใดอย่างหนึ่ง อาจจะเป็นการคำนวณ บวก ลบ คูณ หาร การเรียงลำดับ การสั่งปรินท์ เป็นต้น
5. การส่งค่ากลับ (Return)
คำสั่ง return เป็นการส่งค่าคืนจากฟังก์ชั่น
โดยค่าที่จะ return นั้นขึ้นอยู่กับชนิดข้อมูลที่ฟังก์ชันกำหนด
เช่น การ return ค่าตัวเลขจำนวนเต็ม ตัวเลขทศนิยม หรือการ return ค่าตัวอักขระ
แต่หากฟังก์ชั่นกำหนดให้ค่าที่จะ return เป็น void ฟังก์ชั่นก็จะไม่มีคำสั่งส่งคืนค่าใด ๆ
แต่ในกรณีที่มีการระบุชนิดข้อมูลสำหรับ return ฟังก์ชั่นจะต้องมีคำสั่ง return และต้องระบุค่าที่ return ให้ถูกต้องตามชนิดของข้อมูลมูลตามที่ระบุการ return ให้ตรงกันด้วย
จากตัวอย่างด้านบน บรรทัดที่ 6 ฟังก์ชั่น main() ระบุให้ฟังก์ชั่น return ค่าเป็น int
ดังนั้นในบรรทัดที่ 11 ก่อนปิดการทำงานของฟังก์ชั่น main() (ด้วยเครื่องหมายปีกกาปิด) จึงปรากฎคำสั่ง return และระบุค่าของการ return เป็น 0 ซึ่งเป็นตัวเลขจำนวนเต็ม (int) ตรงตามที่ระบุในบรรทัดที่ 6 นั่นเอง
6. ส่วนหมายเหตุโปรแกรม (Comments)
คอมเมนต์ (comments) คือ ส่วนที่เป็นหมายเหตุของโปรแกรม มีไว้เพื่อให้ผู้เขียนโปรแกรมใส่ข้อความอธิบายกำกับลงไปใน source code
โดยคอมไพเลอร์จะข้ามการแปลผลในส่วนที่เป็นคอมเมนต์นี้
คอมเมนต์ในภาษาซีมี 2 แบบคือ
1) คอมเมนต์แบบบรรทัดเดียว ใช้เครื่องหมาย //
2) คอมเมนต์แบบหลายบรรทัด ใช้เครื่องหมาย /* และ */
ปฏิบัติ
1. เปิดโปรแกรม Dev C++ โดย ดับเบิ้ลคลิกที่ไอคอน
2. สร้างไฟล์ใหม่ โดยคลิกที่ File >> New >> Source File
3. เขียนโค้ดด้วย ภาษา C
4. บันทึกไฟล์ซอร์สโค้ด โดยคลิกที่ File >> Save หรือ Save As...
5. เลือกตำแหน่งที่เก็บไฟล์ ในภาพ เลือกที่ไดรว์ D:
6. สร้างโฟลเดอร์ใหม่ ให้เป็นที่เก็บงานโดยเฉพาะ โดยคลิกที่ปุ่ม Create New Folder
7. ในภาพ สร้างโฟลเดอร์ใหม่ ชื่อ ThanakornDevC
8. ดับเบิ้ลคลิกเข้าไปในโฟลที่สร้างขึ้น
9. เลือกชนิดไฟล์ที่จะบันทึก ในที่นี้เลือกชนิดไฟล์เป็นภาษา C
10. พิมพ์ชื่อไฟล์และใส่นามสกุลไฟล์เป็น .c ในที่นี้ตั้งชื่อไฟล์เป็น ThanakornDevC_001.c แล้วคลิก Save
11. โปรแกรมจะแสดงชื่อไฟล์พร้อมนามสกุลไฟล์ และตำแหน่งโฟลเดอร์ที่จัดเก็บในฮาร์ดดิสก์