โครงสร้างพนื ้ ฐานของภาษาซีส่วนประกอบของโปรแกรมภาษาซี จะมีลกั ษณะท่เี หมือนกนั แตอ่ าจจะแบง่ หรือกาหนดเป็ นสว่ นย่อยทเ่ี รียกชอ่ืตา่ งกนั ไปในท่นี ีจ้ ะขอแบง่ โครงสร้างพนื ้ ฐานของภาษาซอี อกเป็ น 3 สว่ น
1. ส่วนหวั ของโปรแกรม 2. สว่ นของฟังก์ชน่ั หลกั 3. สว่ นรายละเอยี ดของโปรแกรม
1. สว่ นหวั ของโปรแกรมสว่ นหัวของโปรแกรมนีเ้รียกวา่ Preprocessing Directive ใช้ระบเุ พื่อบอกให้คอมไพเลอร์กระทาการ ใด ๆ กอ่ นการแปลผลโปรแกรมในท่ีน่ีคาสง่ั #include <stdio.h> ใช้บอกกับคอมไพเลอร์ให้นาเฮดเดอร์ไฟล์ท่ีระบุคอื stdio.h เข้ารว่ มในการแปลโปรแกรมด้วย โดยการกาหนด preprocessingdirectives นีจ้ ะต้องขนึ ้ ต้นด้วยเครื่องหมาย # เสมอคาสง่ั ท่ีใช้ระบใุ ห้คอมไพเลอร์นาเฮดเดอร์ไฟล์เข้าร่วมในการแปลโปรแกรม สามารถเขียนได้ 2 รปู แบบ คือ- #include <ชอื่ เฮดเดอร์ไฟล์> คอมไพเลอร์จะทาการค้นหาเฮดเดอร์ไฟลท์ ี่ระบจุ ากไดเรกทอรีที่ใช้สาหรบั เก็บเฮดเดอร์ไฟลโ์ ดยเฉพาะ (ปกตคิ ือไดเรกทอรีชอ่ื include)- #include “ชอื่ เฮดเดอร์ไฟล์” คอมไพเลอร์จะทาการค้นหาเฮดเดอร์ไฟท่ีระบุจากไดเร็คทอรีเดยี วกันกบั ไฟล์ source code นนั ้ แต้ถ้าไมพ่ บก็จะไปค้นหาไดเร็คทอรีทีใ่ ช้เก็บเฮดเดอร์ไฟล์โดยเฉพาะ
โปรแกรมภาษาซที ใี่ ช้งานจริงอาจจะมีการเรียกใช้ไฟล์เฮดเดอร์มากกว่า 1 ไฟล์สว่ นใหญ่ไฟล์เฮดเดอร์จะเกีย่ วกับฟังก์ชนั ของการจดั การ เชน่ ฟังก์ชันท่เี กี่ยวกับการรับและแสดงผลข้อมูล หรือด้านกราฟิก เป็นต้นดงั นนั้ ส่วนหวั โปรแกรมนจี้ งึเป็นส่วนทรี่ ะบใุ ห้ซคี อมไพเลอร์เตรียมการทางานท่ีกาหนดในส่วนนไี้ ว้ โดยหน้าคาสงั่ จะมีเครื่องหมาย # เชน่ # include <stdio.h>เป็นการระบใุ ห้นาไฟล์stdio.h มารวมกับไฟล์ที่เขยี นขนึ้ นี้เพอ่ื ทีจ่ ะสามารถใช้คาสัง่ ทอี่ ยใู่ นไฟล์นมี้ าใช้งานได้#define start 10เป็นการกาหนดคา่ คงที่ให้กบั ตวั แปร start โดยให้มีคา่ เป็น 10คาสงั่ #include เรียกว่า คอมไพล์เลอร์ไดเรคทีพ(Compilerdirective)เป็นคาสง่ั พเิ ศษสาหรับช่วยในการคอมไพล์โปรแกรมภาษาซี คาสงั่นเี้รียกมาจากส่วนอ่ืน จึงไมต่ ้องลงท้ายด้วยเคร่ืองหมาย Semicolon( ; ) แต่ต้องเขียนตดิ กนั ห้ามเว้นวรรคระหว่าง # กับ คาส่ัง
2. ส่วนของฟังกช์ นั่ หลกัฟังก์ช่ันหลักของภาษาซี คอื ฟังก์ชัน่ main() ซงึ่ โปรแกรมภาษาซที ุกโปรแกรมจะต้องมฟี ังก์ชนั่ นอี้ ยู่ในโปรแกรมเสมอ จะเหน็ ได้จากชื่อฟังก์ชน่ั คอื main แปลว่า“หลัก” ดงั นนั้ การเขยี นโปรแกรมภาษซจี งึ ขาดฟังก์ชนั่ นไี้ ปไมไ่ ด้ โดยขอบเขตของฟังก์ชน่ั จะถูกกาหนดด้วยเคร่ืองหมาย { และ } กลา่ วคอื การทางานของฟังก์ชัน่ จะเร่ิมต้นที่เคร่ืองหมาย { และจะสนิ้ สดุ ทเ่ี ครื่องหมาย } ฟังก์ชั่น main() สามารถเขยี นในรูปแบบของ void main(void) ก็ได้ มีความหมายเหมอื นกนั คอืหมายความว่า ฟังก์ช่นั main() จะไม่มีอาร์กวิ เมนต์ (argument) คอื ไม่มกี ารรับคา่ ใด ๆ เข้ามาประมวลผลภายในฟังก์ช่นั และจะไมม่ กี ารคนื คา่ ใด ๆ กลบั ออกไปจากฟังก์ชนั่ ด้วย
ตวั อยา่ งของการประกาศตวั แปรเชน่ int num;หมายถงึ การกาหนดตวั แปรช่อื num ให้เป็นตวั แปรชนดิ เลขจานวนเตม็ (integer) เชน่ 2 , 5 , 1001 … เป็นต้นfloat score;หมายถงึ การกาหนดว่าตวั แปร score เป็นข้อมูลชนิดเลขมจี ดุทศนยิ ม (floating point)ซง่ึ อาจมคี า่ 0.23, 1.34 , 13.04 ,-21.002 , ….เป็ นต้น
3. สว่ นรายละเอยี ดของโปรแกรมเป็นส่วนของการเขยี นคาส่งั เพอ่ื ให้โปรแกรมทางานตามท่ไี ด้ออกแบบไว้คอมเมนต์ในภาษาซคี อมเมนต์ (comment) คอื สว่ นที่เป็นหมายเหตขุ องโปรแกรม มีไว้เพื่อให้ผ้เู ขียนโปรแกรมใส่ข้อความอธิบายกากบั ลงไปใน source code ซงึ่คอมไพเลอร์จะข้ามาการแปลผลในส่วนที่เป็นคอมเมนต์นี้คอมเมนต์ในภาษาซมี ี 2แบบคอื ¨ คอมเมนต์แบบบรรทดั เดยี ว ใช้เคร่ืองหมาย //¨ คอมเมนต์แบบหลายบรรทัดใช้เครื่องหมาย /* และ */
จะต้องเริ่มต้นด้วยฟังก์ชันmain ( ) แล้วใสเ่ ครื่องหมายกาหนดขอบเขตเริ่มต้นของตวั โปรแกรมคอื { หลังจาก นนั้ ใสค่ าสง่ั หรือฟังก์ชนั ตา่ ง ๆ โดยแตล่ ะคาส่งั หรือฟังก์ชันนนั้ ๆ จะต้องปิดด้วยเครื่องหมาย ; เมอ่ื ต้องการจบโปรแกรมให้ใส่เคร่ืองหมาย } ปิดท้าย ในสว่ นของตวั โปรแกรมนสี้ ว่ นใหญ่จะประกอบกด้วยฟังก์ชนั ที่ทาหน้าทีใ่ นการรับข้อมลู สว่ นของการกาหนดคา่ หรือคานวณและฟังก์ชนั ทใ่ี ช้ในการแสดงผลข้อมลู หรืออาจจะเป็นฟังก์ชันยอ่ ยท่ีเขยี นขนึ้ภายในเครื่อ’หมายวงเล็บปีกกา { }ที่เรียกว่า บล๊อก ซ้อนอยภู่ ายในอกี ชนั้ หนง่ึ ก้ได้
Search
Read the Text Version
- 1 - 13
Pages: