โครงสร้างพื้นฐานของภาษาซี ส่วนประกอบของโปรแกรมภาษาซี จะมีลักษณะที่เหมือนกัน แต่อาจจะแบ่งหรือกำหนดเป็นส่วนย่อยที่เรียกชื่อต่างกันไป
ในที่นี้จะขอแบ่งโครงสร้างพื้นฐานของภาษาซีออกเป็น 3 ส่วน ดังนี้
…..ส่วนที่ 1 ส่วนหัวโปรแกรม (#header)
เป็นส่วนแรกของโปรแกรมภาษาซีที่กำหนดไว้ก่อนที่จะมีการประมวลผลในโปรแกรมเรียกว่า
พรีโพรเซสเซอร์(Preprocessor) เพื่ออ้างถึงไฟล์บางไฟล์ที่ไม่มีอยู่ในโปรแกรมที่ผู้เขียนโปรแกรมเขียนขึ้นโดยที่จะต้องนำไฟล์เฮดเดอร์
(#header)นั้นมารวมกับไฟล์ที่เขียนขึ้นเอง ใน
โปรแกรมภาษาซีที่ใช้งานจริงอาจจะมีการเรียกใช้ไฟล์เฮดเดอร์มากกว่า 1 ไฟล์
ส่วนใหญ่ไฟล์เฮดเดอร์จะเกี่ยวกับฟังก์ชันของการจัดการ เช่นฟังก์ชันที่เกี่ยวกับการรับและแสดงผลข้อมูล หรือด้านกราฟิก เป็นต้น
ดังนั้นส่วนหัวโปรแกรมนี้จึงเป็นส่วนที่ระบุให้ซีคอมไพเลอร์เตรียมการทำงานที่กำหนดในส่วนนี้ไว้ โดยหน้าคำสั่งจะมีเครื่องหมาย # เช่น
# include <stdio.h>
เป็นการระบุให้นำไฟล์ stdio.h มารวมกับไฟล์ที่เขียนขึ้นนี้ เพื่อที่จะสามารถใช้คำสั่งที่อยู่ในไฟล์นี้มาใช้งานได้
#define start 10
เป็นการกำหนดค่าคงที่ให้กับตัวแปร start โดยให้มีค่าเป็น 10
คำสั่ง
#include เรียกว่า คอมไพล์เลอร์ไดเรคทีพ(Com
piler directive)
เป็นคำสั่งพิเศษสำหรับช่วยในการคอมไพล์โปรแกรมภาษาซี คำสั่งนี้เรียกมาจากส่วนอื่น จึงไม่ต้องลงท้ายด้วยเครื่องหมาย Semicolon
( ; ) แต่ต้องเขียนติดกัน ห้ามเว้นวรรคระหว่าง # กับ คำสั่ง
…..ส่วนที่ 2 ส่วนประกาศตัวแปร (declaration)
ส่วนนี้เป็นการกำหนดชนิดของข้อมูลที่ต้องการใช้ในโปรแกรม ปกติจะอยู่ที่ส่วนต้นของฟังก์ชัน ซึ่งจะอยู่ก่อนคำสั่งอื่น ๆ
ตัวอย่างของการประกาศตัวแปร
เช่น
int num;
หมายถึง การกำหนดตัวแปรชื่อ num ให้เป็นตัวแปรชนิดเลขจำนวนเต็ม (integer) เช่น 2 , 5 , 1001 … เป็นต้น
float score;
หมายถึง การกำหนดว่าตัวแปร score เป็นข้อมูลชนิดเลขมีจุดทศนิยม (floating point)ซึ่งอาจมีค่า 0.23, 1.34 , 13.04 ,
-21.002 , …. เป็นต้น
…..ส่วนที่ 3 ส่วนของตัวโปรแกรม (Body )
ส่วนนี้จะต้องเริ่มต้นด้วยฟังก์ชันmain ( ) แล้วใส่เครื่องหมายกำหนดขอบเขตเริ่มต้นของตัวโปรแกรมคือ
{ หลังจาก นั้นใส่คำสั่งหรือฟังก์ชันต่าง
ๆ โดยแต่ละคำสั่งหรือฟังก์ชันนั้น ๆ จะต้องปิดด้วยเครื่องหมาย ; เมื่อต้องการ
จบโปรแกรมให้ใส่เครื่องหมาย } ปิดท้าย ในส่วนของตัวโปรแกรมนี้ส่วนใหญ่จะประกอบกด้วยฟังก์ชันที่ทำหน้าที่ในการรับข้อมูล
ส่วนของการกำหนดค่าหรือคำนวณ และฟังก์ชัน
ที่ใช้ในการแสดงผลข้อมูล
หรืออาจจะเป็นฟังก์ชันย่อยที่เขียนขึ้นภายในเครื่อ’
หมายวงเล็บปีกกา { }ที่เรียกว่า บล๊อก ซ้อนอยู่ภายในอีกชั้นหนึ่งก้ได้
เครื่องหมายต่าง ๆ ที่ควรทำความเข้าใจ
{ } – เป็นตัวกำหนดขอบเขตหรือบล็อกของฟังก์ชัน
( ) – เป็นการระบุตัวผ่านค่าหรืออาร์กิวเมนต์ให้กับฟังก์ชัน
ถ้าภายในวงเล็บไม่มีข้อความใด ๆ แสดงว่าไม่มีตัวผ่านค่าที่ต้องการระบุสำหรับฟังก์ชันนั้น ๆ
/*…*/ –
เป็นการกำหนด comment หรือข้อความ ที่ไม่ต้องการให้คอมไพเลอร์ปฏิบัติงาน ซึ่งข้อความที่อยู่ภายใน
เครื่องหมายนี้จะถือว่า ไม่ใช่คำสั่งปฏิบัติงาน
สื่อวีดิทัศน์การสอน เรื่อง :: โครงสร้างของภาษาภาษาซี ::
———————————————————————————————————————————
โครงสร้างของภาษาภาษาซีแบ่งออกเป็น 4 ส่วนดังนี้
——————————————————————————————————————————
1. ส่วนหัวของโปรแกรม
ส่วนหัวของโปรแกรมนี้เรียกว่า Preprocessing Directive ใช้ระบุเพื่อบอกให้คอมไพเลอร์กระทำการใด ๆ ก่อนการแปลผลโปรแกรมในที่นี่คำสั่ง #include <stdio.h> ใช้บอกกับคอมไพเลอร์ให้นำเฮดเดอร์ไฟล์ที่ระบุ
คือ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย โดยการกำหนด Preprocessing Directives นี้จะต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ
คำสั่งที่ใช้ระบุให้คอมไพเลอร์นำเฮดเดอร์ไฟล์เข้าร่วมในการแปลโปรแกรมสามารถเขียนได้
2 รูปแบบ คือ
#include <ชื่อเฮดเดอร์ไฟล์> คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟล์ที่ระบุจากไดเรกทอรีที่ใช้ สำหรับเก็บเฮดเดอร์ไฟล์โดยเฉพาะ (ปกติคือไดเรกทอรีชื่อ include)
#include “ชื่อเฮดเดอร์ไฟล์” คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟล์ที่ระบุจากไดเร็คทอรีเดียวกันกับไฟล์ Source Code นั้น แต่ถ้าไม่พบก็จะไปค้นหาไดเร็คทอรีที่ใช้เก็บเฮดเดอร์ไฟล์โดยเฉพาะ
——————————————————————————————————————————
2. ส่วนของฟังก์ชันหลัก
ฟังก์ชันที่กำหนดชึ้นมาชื่อฟังก์ชัน main() โดยทุกโปรแกรมจะต้องมีฟังก์ชัน main() ทำหน้าที่เป็นฟังก์ชันหลักในการทำงานในการประมวลผลโปรแกรมทุกครั้ง
ฟังก์ชันหลักของภาษาซี คือ ฟังก์ชัน main()
ซึ่งโปรแกรมภาษาซีทุกโปรแกรมจะต้องมีฟังก์ชันนี้อยู่ในโปรแกรมเสมอ จะเห็นได้จากชื่อฟังก์ชันคือ main แปลว่า “หลัก” ดังนั้น การเขียนโปรแกรมภาษาซีจึงขาดฟังก์ชันนี้ไปไม่ได้ โดยขอบเขตของฟังก์ชันจะถูกกำหนดด้วยเครื่องหมาย { และ } กล่าวคือ การทำงานของฟังก์ชันจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย } ฟังก์ชัน main() สามารถเขียนในรูปแบบของ int main ก็ได้ มีความหมายเหมือนกัน คือ หมายความว่า ฟังก์ชัน main() จะไม่มีอาร์กิวเมนต์ (Argument) คือไม่มีการรับค่าใด ๆ เข้ามาประมวลผลภายในฟังก์ชัน
และจะมีการคืนค่ากลับออกไปจากฟังก์ชันด้วย
Argument คือ ตัวรับค่าเข้ามาในฟังก์ชัน
Parameter คือ ค่าที่ส่งไปยังฟังก์ชันค่า
Argument และ Parameter ต้องเป็นข้อมูลชนิดเดียวกัน เช่น หากกำหนดให้ Argument เป็นข้อมูลชนิดตัวอักษรแล้วค่า Parameter ที่ส่งไปก็ต้องเป็นชนิดตัวอักษรด้วย
ตัวอย่างที่ 1 argument และ parameter
1: | #include <stdio.h> void show (char a) -----------> Argument รับตัวอักษร 'a' มาในฟังก์ชัน { printf("%c",a) ; } void main(void) Parameter ส่งตัวอักษร 'a' ไปยังฟังก์ชัน show( ) { show('a') ; } |
——————————————————————————————————————————
3. ส่วนรายละเอียดของโปรแกรม
เป็นส่วนของการเขียนคำสั่งต่าง ๆ เพื่อสั่งให้คอมพิวเตอร์ทำงาน ในการเขียนคำสั่งจะเขียนภายในเครื่องหมายปีกกาเปิด { และเครื่องหมายปีกกาปิด } โดยปกติส่วนของการเขียนโปรแกรมจะสามารถแบ่งออกได้เป็น 2 ส่วนด้วยกัน คือ
1) ส่วนของการประกาศตัวแปร คือ ส่วนที่ใช้ในการกำหนดตัวแปรที่จะใช้งานในการเขียนโปรแกรม
2) ส่วนของคำสั่ง หรือ ฟังก์ชันต่าง ๆ คือ ส่วนที่ใช้ในการกำหนดตัวแปรที่จะใช้งานในการเขียนโปรแกรมพิมพ์ฟังก์ชันเสร็จแล้วจะต้องปิดท้ายด้วยเครื่องหมายเซมิโคลอน ; เสมอ
——————————————————————————————————————————
4. ส่วนของการเปิดโปรแกรมและปิดโปรแกรม
ตามโครงสร้างของภาษาซีจะต้องมีการกำหนดจุดเริ่มต้นและจบโปรแกรม โดยในที่นี้ใช้เครื่องหมาย
ปีกกาเปิด { ในการระบุตำแหน่งการเริ่มต้นโปรแกรม และใช้เครื่องหมายปีกกาปิด } ในการระบุตำแหน่งการจบโปรแกรม
(แหล่งข้อมูล... คู่มือเขียนโปรแกรมด้วยภาษา C ฉบับสมบูรณ์ / อรพิน
ประวัติบริสุทธิ์)
(แหล่งข้อมูล... การเขียนโปรแกรมภาษา C / จีระพงษ์ โพพันธ์)
——————————————————————————————————————————