โครงสร้างของภาษา C ++

ภาษา C เป็นภาษาคอมพิวเตอร์ที่ถูกค้นคิดขึ้นโดย Denis Ritchie ในปี ค.ศ. 1970 
โดยใช้ระบบปฏิบัติการของยูนิกซ์ (UNIX) นับจากนั้นมาก็ได้รับความนิยมเพิ่มขั้นจนถึงปัจจุบัน ภาษา C สามารถติดต่อในระดับฮาร์ดแวร์ได้ดีกว่าภาษาระดับสูงอื่น ๆ ไม่ว่าจะเป็นภาษาเบสิกฟอร์แทน ขณะเดียวกันก็มีคุณสมบัติของภาษาระดับสูงอยู่ด้วย ด้วยเหตุผลดังกล่าวจึงจัดได้ว่าภาษา C เป็นภาษาระดับกลาง (Middle –lever language) 
ภาษา C เป็นภาษาคอมพิวเตอร์ชนิดคอมไพล์ (compiled Language) ซึ่งมีคอมไพลเลอร์ (Compiler) ทำหน้าที่ในการคอมไพล์ (Compile) หรือแปลงคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่อง (Machine Language) เพื่อให้เครื่องคอมพิวเตอร์นำคำสั่งเหล่านั้นไปทำงานต่อไป



โครงสร้างของโปรแกรมภาษาซีแบ่งออกเป็น 3 ส่วน
1. ส่วนหัวของโปรแกรม

        ส่วนหัวของโปรแกรมนี้เรียกว่า Preprocessing Directive ใช้ระบุเพื่อบอกให้คอมไพเลอร์กระทำการ ใด ๆ ก่อนการแปลผลโปรแกรม ในที่นี่คำสั่ง #include <stdio.h> ใช้บอกกับคอมไพเลอร์ให้นำเฮดเดอร์ไฟล์ที่ระบุ คือ stdio.h เข้าร่วมในการแปลโปรแกรมด้วย โดยการกำหนด preprocessing directives นี้จะต้องขึ้นต้นด้วยเครื่องหมาย # เสมอ

คำสั่งที่ใช้ระบุให้คอมไพเลอร์นำเฮดเดอร์ไฟล์เข้าร่วมในการแปลโปรแกรม สามารถเขียนได้ 2 รูปแบบ คือ
- #include <ชื่อเฮดเดอร์ไฟล์> คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟล์ที่ระบุจากไดเรกทอรีที่ใช้สำหรับเก็บเฮดเดอร์ไฟล์โดยเฉพาะ (ปกติคือไดเรกทอรีชื่อ include)
- #include “ชื่อเฮดเดอร์ไฟล์” คอมไพเลอร์จะทำการค้นหาเฮดเดอร์ไฟที่ระบุ จากไดเร็คทอรีเดียวกันกับไฟล์ source code นั้น แต้ถ้าไม่พบก็จะไปค้นหาไดเร็คทอรีที่ใช้เก็บเฮดเดอร์ไฟล์โดยเฉพาะ

2. ส่วนของฟังก์ชั่นหลัก
        ฟังก์ชั่นหลักของภาษาซี คือ ฟังก์ชั่น main() ซึ่งโปรแกรมภาษาซีทุกโปรแกรมจะต้องมีฟังก์ชั่นนี้อยู่ในโปรแกรมเสมอ จะเห็นได้จากชื่อฟังก์ชั่นคือ main แปลว่า “หลัก” ดังนั้น การเขียนโปรแกรมภาษซีจึงขาดฟังก์ชั่นนี้ไปไม่ได้ โดยขอบเขตของฟังก์ชั่นจะถูกกำหนดด้วยเครื่องหมาย { และ } กล่าวคือ การทำงานของฟังก์ชั่นจะเริ่มต้นที่เครื่องหมาย { และจะสิ้นสุดที่เครื่องหมาย } ฟังก์ชั่น main() สามารถเขียนในรูปแบบของ void main(void) ก็ได้ มีความหมายเหมือนกัน คือ หมายความว่า ฟังก์ชั่น main() จะไม่มีอาร์กิวเมนต์ (argument) คือไม่มีการรับค่าใด ๆ เข้ามาประมวลผลภายในฟังก์ชั่น และจะไม่มีการคืนค่าใด ๆ กลับออกไปจากฟังก์ชั่นด้วย

3. ส่วนรายละเอียดของโปรแกรม
เป็นส่วนของการเขียนคำสั่ง เพื่อให้โปรแกรมทำงานตามที่ได้ออกแบบไว้
คอมเมนต์ในภาษาซี
       คอมเมนต์ (comment) คือส่วนที่เป็นหมายเหตุของโปรแกรม มีไว้เพื่อให้ผู้เขียนโปรแกรมใส่ข้อความอธิบายกำกับลงไปใน source code ซึ่งคอมไพเลอร์จะข้ามาการแปลผลในส่วนที่เป็นคอมเมนต์นี้ คอมเมนต์ในภาษาซีมี 2 แบบคือ

¨ คอมเมนต์แบบบรรทัดเดียว ใช้เครื่องหมาย //

¨ คอมเมนต์แบบหลายบรรทัด ใช้เครื่องหมาย /* และ */


ตัวอย่าง การคอมเมนต์ในภาษาซี
// Comment only one line


#include <stdio.h>


#include <conio.h>


main void()


{


clrscr();


/*comment


many


line*/


}



ข้อควรระวังในการใช้คอมเมนต์ คือ ในกรณีที่ใช้คอมเมนต์แบบหลายบรรทัด จะไม่สามารถใช้คอมเมนต์ซ้อนคอมเมนต์ได้ ดังรูป มิฉะนั้นจะก่อให้เกิดข้อผิดพลาดในการคอมไพล์







/




/




/*Comment1*/




/*Comment2*/




/*Comment3*/




/*Comment2*/




X




/*Comment1




/*Comment3*/






การใช้คอมเมนต์แบบหลายบรรทัด
      จะเห็นว่าในกรณีที่ต้องการใส่คอมเมนต์หลาย ๆ บรรทัดติดกันนั้น คอมเมนต์แบบหลายบรรทัดจะช่วยประหยัดเวลาในการใส่คอมเมนต์ได้มากกว่าการใช้คอมเมนต์แบบบรรทัดเดียว แต่ก็ควรระมัดระวังในการใช้งานด้วย
ตัวอย่างที่ 1 โปรแกรมให้นักเรียนศึกษาโครงสร้างของโปรแกรมภาษาซี


1:

#include <stdio.h>


2:

void main()


3:

{


4:

clrscr();


5:

printf("My name is Kwanjit");


6:

}


ผลลัพธ์ของโปรแกรม


My name is Kwanjit





อธิบายโปรแกรม

บรรทัดที่ 1: เป็นการบอกให้คอมไพเลอร์นำเฮดเดอร์ไฟล์ชื่อ stdio.h เข้ามาร่วมในการแปลผลด้วย โดย stdio ย่อมาจาก standard input/output และ .h คือ นามสกุลของเฮดเดอร์ไฟล์ในภาษาซี (h ย่อมาจาก header) ซึ่ง stdio.h คือ เฮดเดอร์ไฟล์ที่รวมเอาการประกาศ (declaration) ของฟังก์ชั่นมาตรฐานของภาษาซีที่เกี่ยวกับการจัดการด้านอินพุตและเอาต์พุตเข้ามาไว้ด้วยกันโปรแกรมนี้มีการเรียกใช้งานฟังก์ชั่น printf() เพื่อแสดงข้อมูลออกทางจอภาพ และเนื่องจากส่วนของการประกาศฟังก์ชั่น printf() ถูกบรรจุอยู่ในเฮดเดอร์ไฟล์ stdio.h ดังนั้นจึงจำเป็นต้องนำเฮดเดอร์ไฟล์ stdio.h เข้าร่วมในการแปลผลด้วย

บรรทัดที่ 2: คือฟังก์ชั่น void main() ซึ่งเป็นฟังก์ชั่นหลักของโปรแกรม การทำงานของโปรแกรมภาษาซีจะเริ่มต้นที่ฟังก์ชั่นนี้

บรรทัดที่ 3: เครื่องหมาย { ระบุจุดเริ่มต้นของฟังก์ชั่น main()

บรรทัดที่ 4: เป็นคำสั่งให้เคลียร์หน้าจอเวลาแสดงผลลัพธ์

บรรทัดที่ 5: เป็นการเรียกใช้ฟังก์ชั่น printf() ซึ่งเป็นฟังก์ชั่นมาตรฐานของภาษาซีทำหน้าที่แสดงผลข้อมูลออกทางจอภาพ ในที่นี้จะแสดงข้อความ My name is Kwanjit ออกทางจอภาพ

บรรทัดที่ 6: เครื่องหมาย } ระบุจุดสิ้นสุดของฟังก์ชั่น main()

ขอขอบคุณข้อมูลจาก https://sites.google.com/site/programingmpp/page-2

การคอมไพล์และการลิงค์โปรแกรมในภาษาซี
การสร้างโปรแกรมที่สามารถใช้งานได้ขึ้นมาโปรแกรมหนึ่ง ในภาษาซีมีขั้นตอนดังนี้


          1. สร้างตัวโปรแกรมที่เป็นตัวอักษรหรือเรียกว่า ซอร์สไฟล์ (Source file) โดยมีนามสกุลเป็น .c หรือ .cpp ขึ้นมาก่อน โดยใช้โปรแกรมที่สามารถเขียนไฟล์ที่เก็บอักขระ (Editor) ใด ๆ ก็ได้ อักษรหรืออักขระใด ๆ นั้น จะต้องอยู่ในรูปแบบของการโปรแกรมภาษา (ขั้นตอนนี้คือการสร้างโปรแกรมที่เป็นภาษามนุษย์นั่นเอง)

          2. คอมไพล์เลอร์ของภาษาซี (C Compiler) จะทำการแปลงซอร์สไฟล์ จากอักขระใด ๆ ให้เป็นรหัสที่เครื่องคอมพิวเตอร์สามารถเข้าใจได้เก็บไว้ในอีกไฟล์หนึ่งเรียกว่า ไฟล์วัตถุประสงค์ (Object file) ที่มีนามสกุล .obj (ขั้นตอนนี้เรียกว่า การคอมไพล์ เป็นการแปลงภาษามนุษย์เป็นภาษาเครื่องนั่นเอง)

          3. ตัวเชื่อม (Linker) จะทำการตรวจสอบว่าในโปรแกรมที่เขียนขึ้นนั้น มีการเรียกใช้งานฟังก์ชันมาตรฐานใด จากห้องสมุดของภาษาซี (C Library) บ้างหรือไม่ ถ้ามี ตัวเชื่อมจะทำการรวมเอาฟังก์ชันเหล่านั้นเข้ากับไฟล์วัตถุประสงค์ แล้วจะได้ไฟล์ที่สามารถทำงานได้ โดยมีนามสกุลเป็น .exe (ขั้นตอนนี้เรียกว่า การลิงค์ เป็นการรวมฟังก์ชันสำเร็จรูปเข้าไป แล้วสร้างไฟล์ที่ทำงานได้)



ที่มา
https://sites.google.com/site/aonnkumikojung/khorngsrang-khxng-phasa-si 






ความคิดเห็น