Introduction to C Language Chapter 1 Introduction to C Language
ประวัติความเป็นมาของภาษาซี ค.ศ. 1972 Dennis Ritchie สร้างภาษาซีครั้งแรก พัฒนามาจากภาษา B และภาษา BCPL ค.ศ. 1978 Kernighan และ Ritchie พัฒนา K&R เขียนหนังสือ The C Programming Language ครั้งแรก ค.ศ. 1988 ANSI สร้างมาตรฐานภาษาซี เรียกว่า ANSI C
ประวัติความเป็นมาของภาษาซี ภาษาซีเป็นภาษาระดับกลาง (Middle-level Language) ภาษาซีเป็นหลักการพื้นฐานในการสร้างภาษารุ่นใหม่ เช่น Java ,C++
ขั้นตอนการพัฒนาโปรแกรมภาษาซี ขั้นตอนที่ 1 เขียนโปรแกรม (Source Code) ใช้ Editor เขียนโปรแกรมภาษาซี เช่น Notepad,Editplus บันทึกไฟล์ให้มีนามสกุลเป็น .c เช่น test.c (ถ้าเป็น C++ จะเป็น test.cpp)
ขั้นตอนที่ 2 คอมไพล์โปรแกรม (Compile) ขั้นตอนนี้คอมไพเลอร์จะทำการตรวจสอบ Source Code หากพบข้อผิดพลาด ก็จะแจ้งให้ผู้เขียนโปรแกรมแก้ไข หากไม่พบข้อผิดพลาด คอมไพเลอร์ก็จะแปลไฟล์ Source Code ไปเป็นภาษาเครื่อง (.obj)
ตัวแปรภาษา (Compiler) (Interpreter) ประเภท ข้อดี ข้อเสีย คอมไพเลอร์ ทำงานเร็ว แปลผลครั้งเดียว ตรวจหาข้อผิดพลาดยาก อินเตอร์พรีเตอร์ (Interpreter) หาข้อผิดพลาดได้ง่าย การแปลคำสั่งทีละบรรทัดจึ่งสามารถสั่งให้ทำงานเฉพาะส่วนที่ต้องการได้ ไม่เสียเวลาแปลโปรแกรมนาน ๆ - ช้า เนื่องจากทำงานทีละบรรทัด
ขั้นตอนที่ 3 เชื่อมโยงโปรแกรม (Link) ผู้เขียนโปรแกรมภาษาซีไม่ต้องเขียนคำสั่งต่าง ๆ ขึ้นมาเอง เนื่องจากมีฟังก์ชั่นมาตรฐานให้เรียกใช้งานได้ ฟังก์ชั่นมาตรฐานต่าง ๆ จะถูกเก็บไว้ใน Library ก่อนใช้งานจึงต้องประกาศเชื่อมโยงเข้ากับ Library ที่ตำแหน่งเฮดเดอร์ของไฟล์โปรแกรมแต่ละไฟล์ ดังนั้นในขั้นที่ 2 ไฟล์ .obj จึงใช้งานไม่ได้ จึงต้องทำการเชื่อมโยงเข้ากับ Library จะได้ไฟล์ .exe ที่ใช้งานได้
ขั้นตอนที่ 4 ประมวลผล (Run) เมื่อนำไฟล์ .exe จากขั้นตอนที่ 3 มาประมวลผลจะได้ผลลัพธ์ Editor Library Test.c Test.exe C Compiler Test.obj Output
โครงสร้างของโปรแกรมภาษาซี #include <stdio.h> main() { … } 1 2 3
ส่วนหัวของโปรแกรม 1 เรียกว่า Preprocessing Directives จะต้องขึ้นต้นด้วยเครื่องหมาย # (pound sign) เสมอ การระบุให้คอมไพเลอร์นำเฮดเดอร์ไฟล์มาร่วมในแปลคำสั่งโปรแกรมแบ่งเป็น 2 รูปแบบ คือ #include <ชื่อเฮดเดอร์ไฟล์> #include “ชื่อเฮดเดอร์ไฟล์”
ส่วนของฟังก์ชั่นหลัก 2 ฟังก์ชั่นหลักของภาษาซีคือ main( ) เริ่มต้นและสิ้นสุดการทำงานด้วย { } main( ) อาจเขียนแทนด้วย void main(void) ไม่รับค่าใด ๆ เข้ามาในฟังก์ชั่น ไม่คืนค่าใด ๆ กลับออกไปจากฟังก์ชั่น
Argument และ Parameter #include <stdio.h> void show(char a) { printf(“%c”,a); } void main(void) show(‘z’); Argument (รับ) รับตัวอักษร ‘z’ มาในฟังก์ชั่น parameter (ส่ง) ส่งตัวอักษร ‘z’ ไปยังฟังก์ชั่น show( )
ส่วนรายละเอียดของโปรแกรม 3 คอมเมนต์ (comment) คือ ส่วนที่เป็นหมายเหตุของโปรแกรม คอมเมนต์บรรทัดเดียวใช้ // คอมเมนต์หลายบรรทัดใช้ /* และปิดด้วย */ ตัวอย่างการคอมเมนต์ #include <stdio.h> Main() { // comment one line /* comment many line */ }
กฎการตั้งชื่อ (ตัวแปร, ฟังก์ชั่น และเลเบล) ต้องไม่ซ้ำกับคำสงวน (reserved word) ในภาษาซี เช่น default for if do goto Case-sensitive ตัวเล็ก-ตัวใหญ่ถือเป็นคนละตัวกัน เช่น Test TEST tesT ต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย Underscore การตั้งชื่อจะไม่เว้นวรรคหรือมีช่องว่าง การตั้งชื่อจะต้องไม่ประกอบด้วยอักขระพิเศษ เช่น $ @ # &
อธิบายภาษาซีโปรแกรมแรก // Helloworld.c #include <stdio.h> main() { printf(“Hello World”); }