top of page
คอนโซลการเขียนโปรแกรม

หน่วยการเรียนรู้ที่ 2

ความรู้ทั่วไปเกี่ยวกับภาษาซี

จุดประสงค์การเรียนรู้

1. บอกประวัติความเป็นมาของภาษาซีได้

2. อธิบายลักษณะของภาษาซีได้

3. อธิบายโครงสร้างของโปรแกรมภาษาซีได้

4. อธิบายขั้นตอนการแปลโปรแกรมภาษาซีได้

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram

2.1  ประวัติความเป็นมาภาษาซี

         ภาษาซี (C) ได้รับการออกแบบและพัฒนาขึ้นโดย Dennis Ritchie เมื่อปี ค.ศ.1972 ห้องปฏิบัติการเบลล์ (Bell Laboratories) โดยออกแบบเพื่อใช้งานบนระบบปฏิบัติการ UNIX บนเครื่องเมนเฟรม คอมพิวเตอร์ DEC PDP-11 ซึ่งภาษาซีได้พัฒนามาจากภาษาบี (B) ที่พัฒนา โดย Ken Thompson ภาษาบีถูกพัฒนาบนพื้นฐานของภาษาบีซีพีแอล (BCPL)

2.2  ลักษณะของภาษาซี

          ภาษาซี C จัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมที่นิยมใช้งาน ซึ่งภาษา c จัดเป็นภาษาระดับกลาง (Middle-Level Language) เหมาะกับการเขียนโปรแกรมแบบโครงสร้าง (Structured Programming) โดยมีคุณสมบัติโดดเด่นอย่างหนึ่งคือ มีความยืดหยุ่นสูง (Flexible Level) กล่าวคือ สามารถทำงานกับเครื่องมือต่างๆ สามารถปรับเปลี่ยนการเขียนโปรแกรมในรูปแบบต่างๆได้ เช่น ความสามารถในการใช้งานบนสภาพแวดล้อมที่แตกต่างกัน (Portability)  มีประสิทธิภาพสูง (Efficiency) ความสามารถในการโปรแกรมแบบโมดูล (Modularity) และยังสามารถเขียนโปรแกรมที่มีความยาวหลายบรรทัดให้เหลือความยาว 2-3 บรรทัดได้ โดยมีการผลการทำงานที่เหมือนเดิม

2.3  โครงสร้างของโปรแกรมภาษาซี

โครงสร้าง.png

โครงสร้างของโปรแกรมภาษาซีแบ่งออกเป็น 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) คือไม่มีการรับค่าใด ๆ เข้ามาประมวลผลภายในฟังก์ชั่น และจะไม่มีการคืนค่าใด ๆ กลับออกไปจากฟังก์ชั่นด้วย

main.png

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


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

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

// Comment only one line

#include <stdio.h>

#include <conio.h>

main void()

{

clrscr();

/*comment

many

line*/

}

2.3  โครงสร้างของโปรแกรมภาษาซี

ขั้นตอนที่ 1 เขียนโปรแกรม (source code)  ใช้ editor เขียนโปรแกรมภาษาซีและทำการบันทึกไฟล์ให้มีนามสกุลเป็น .c  เช่น  work.c เป็นต้น editor  คือ  โปรแกรมที่ใช้สำหรับการเขียนโปรแกรม  โดยตัวอย่างของ editor  ที่นิยมนำมาใช้ในการเขียนโปรแกรมได้แก่  Notepad,Edit  ของ Dos ,TextPad  และ  EditPlus เป็นต้น ผู้เขียนโปรแกรมสามารถเลือกใช้โปรแกรมใดในการเรียนโปรแกรมก็ได้  แล้วแต่ความถนัดของแต่ละบุคคล

ขั้นตอนที่  2 คอมไพล์โปรแกรม (compile) นำ source code จากขั้นตอนที่ 1 มาทำการคอมไพล์  เพื่อแปลจากภาษาซีที่มนุษย์เข้าใจไปเป็นภาษาเครื่องที่คอมพิวเตอร์เข้าใจได้  ในขั้นตอนนี้คอมไพเลอร์จะทำการตรวจสอบ  source code  ว่าเกิดข้อผิดพลาดหรือไม่
หากเกิดข้อผิดพลาด จะแจ้งให้ผู้เขียนโปรแกรมทราบ  ผู้เขียนโปรแกรมจะต้องกลับไปแก้ไขโปรแกรม  และทำการคอมไพล์โปรแกรมใหม่อีกครั้ง
หากไม่พบข้อผิดพลาด  คอมไพเลอร์จะแปลไฟล์  source code จากภาษาซีไปเป็นภาษาเครื่อง (ไฟล์นามสกุล .obj) เช่นถ้าไฟล์ source code ชื่อ work.c ก็จะถูกแปลไปเป็นไฟล์  work.obj  ซึ่งเก็บภาษาเครื่องไว้เป็นต้น
compile เป็นตัวแปลภาษารูปแบบหนึ่ง  มีหน้าที่หลักคือการแปลภาษาโปรแกรมที่มนุษย์เขียนขึ้นไปเป็น
ภาษาเครื่อง โดยคอมไพเลอร์ของภาษาซี คือ  C Compiler  ซึ่งหลักการที่คอมไพเลอร์ใช้  เรียกว่า  คอมไพล์ (compile)  โดยจะทำการอ่านโปรแกรมภาษาซีทั้งหมดตั้งแต่ต้นจนจบ  แล้วทำการแปลผลทีเดียว
นอกจากคอมไพเลอร์แล้ว  ยังมีตัวแปลภาษาอีกรูปแบบหนึ่งที่เรียกว่า  อินเตอร์พรีเตอร์  การอ่านและแปลโปรแกรมทีละบรรทัด  เมื่อแปลผลบรรทัดหนึ่งเสร็จก็จะทำงานตามคำสั่งในบรรทัดนั้น  แล้วจึงทำการแปลผลตามคำสั่งในบรรทัดถัดไป  หลักการที่อินเตอร์พรีเตอร์ใช้เรียกว่า อินเตอร์เพรต (interpret)

ขั้นตอนที่  3  เชื่อมโยงโปรแกรม (link)   การเขียนโปรแกรมภาษาซีนั้นผู้เขียนโปรแกรมไม่จำเป็นต้องเขียนคำสั่งต่าง ๆ ขึ้นใช้งานเอง  เนื่องจากภาษาซีมีฟังก์ชั้นมาตรฐานให้ผู้เขียนโปรแกรมสามารถเรียกใช้งานได้ เช่น  การเขียนโปรแกรมแสดงข้อความ  “surasakmontree” ออกทางหน้าจอ  ผู้เขียนโปรแกรมสามารถเรียกใช้ฟังก์ชั่น  printf() ซึ่งเป็นฟังก์ชั่น          มาตรฐานของภาษาซีมาใช้งานได้  โดยส่วนการประกาศ (declaration) ของฟังก์ชั่นมาตรฐานต่าง ๆ จะถูกจัดเก็บอยู่ในเฮดเดอร์ไฟล์แต่ละตัว แตกต่างกันไปตามลักษณะการใช้งาน 
ด้วยเหตุนี้ภาษาเครื่องที่ได้จากขั้นตอนที่ 2  จึงยังไม่สามารถนำไปใช้งานได้ แต่ต้องนำมาเชื่อมโยงเข้ากับ  library  ก่อน  ซึ่งผลจากการเชื่อมโยงจะทำให้ได้  executable program (ไฟล์นามสกุล.exe เช่น  work.exe)      ที่สามารถนำไปใช้งานได้

ขั้นตอนที่ 4 ประมวลผล (run)   เมื่อนำ executable program  จากขั้นตอนที่ 3 มาประมวลผลก็จะได้ผลลัพธ์  (output) ของโปรแกรมออกมา (ถ้ามี)

p2001.jpg

วิดีโอการสอน

bottom of page