Make your own free website on Tripod.com
 

Back to Top

รู้จักกับภาษา C

 

 

ในปี พ.ศ. 2515 ที่ห้องปฏิบัติการเบล เมืองเมอร์รีฮิล มลรัฐนิวเจอร์ซี่ โปรแกรมเมอร์ชื่อ เดนนิช ริชชี่ ได้พัฒนาโปรแกรม ภาษา B (BCPL : Basic Combined Programming Language) ของ เคน ทอมสัน และได้โปรแกรมใหม่ขี้นมาโดยให้ชื่อว่า ภาษา C สาเหตุที่ชื่อภาษา C อาจเป็นเพราะว่า C เป็นอักษรตัวที่ 2 ถัดจาก B ในคำว่า BCPL หรือ อาจเป็นเพราะว่า C เป็นตัวอักษรถัดจาก B ในอักษรภาษาอังกฤษ A - Z

ข้อดีของภาษา C

1.ภาษา C ใช้ได้ในไมโครคอมพิวเตอร์ ตั้งแต่ขนาด 8 บิต 16 บิต 32 บิต มินิคอมพิวเตอร์ หรือ คอมพิวเตอร์ระดับเมนเฟรม มีการพัฒนาการใช้งาน เพื่อให้เป็นมาตรฐาน ไม่ขึ้นกับโปรแกรมจัดระบบงาน หรือ อุปกรณ์ทางอิเล็กทรอนิกส์ (ฮาร์ดแวร์)
2.ภาษา C มีหลายรุ่น มีผู้ผลิตต่างบริษัท แต่มีโครงสร้างคล้ายกัน และสามารถใช้ร่วมกันได้
3.ภาษา C มีความอ่อนตัว สามารถเจาะลงระดับลึกให้เข้ากับฮาร์ดแวร์ ทำงานได้รวดเร็ว และที่สำคัญ ภาษา C เป็นคอมไพเลอร์
4.ภาษา C เป็นภาษาที่มีโครงสร้าง

ระดับภาษาของโปรแกรม


ภาษาระดับต่ำ เป็นภาษาที่มีความเร็วในการทำงาน แต่มีความยุ่งยากในการเขียน และ พัฒนาโปรแกรม
ภาษาระดับสูง มีความล่าช้าในการใช้งาน แต่เขียนโปรแกรมง่าย
ภาษา C มีโครงสร้างเป็นภาษาระดับสูง และสามารถทำงานได้เร็วในเวลาใช้งาน

โครงสร้างภาษา C

#header
main ( )
{
- กำหนดตัวแปร
- กำหนดค่าตัวแปร
- ฟังก์ชัน ในรูปสเตตเมนท์
- การควบคุม
- คอมเมนท์
}
function a( )
{

....( มีส่วนประกอบเช่นเดียวกับ ฟังก์ชั่น main )
}
function b( )
.
.
.

เริ่มต้นใช้ C

1.เขียนโปรแกรมบนอิดิเตอร์ ใด ๆ หรือ อิดิเตอร์ของภาษา C แล้วบันทึกข้อมูลให้มีนามสกุลเป็น .C
2.การคอมไพล์ จะได้ ข้อมูลนามสกุล OBJ ออปเจ็ค
3.การติดต่อกับไลบรารี จะได้ขัอมูลนามสกุล EXE เรียกว่า การเอ็กซีคิวต์

การเขียนโปรแกรมภาษา C แต่ละครั้ง จะใช้วิธีการ รัน (RUN) เพียงครั้งเดียว ก็จะได้ ข้อมูลนามสกุล OBJ และ EXE โดยพิจารณา ในรูป 1

 


รูป 1 ผังการเขียนโปรแกรมภาษา C


การ RUN โปรแกรมภาษา C

1.RUN ใน Memory คือ การ RUN ในสภาวะแวดล้อมของ C คอมไพเลอร์ ใช้ในการพัฒนาโปรแกรม
2.RUN นอก Memory คือ การเรียกใช้ ข้อมูลนามสกุล EXE ที่ผ่านการเอ็กซีคิวต์ นอก C คอมไพเลอร์ เช่น DOS Windows หรือ บนระบบ ปฏิบัติการอื่น ๆ

ตัวอย่างการเขียนโปรแกรม

#include <stdio.h> (1)

main ( ) (2)
{
int A; (3)
A = 20; (4)
printf ("Turbo C \n"); (5)
printf ("Easy Program"); /* function printf */ (6)
}

1. header เป็นการบอกให้ C คอมไพเลอร์ นำไฟล์อินพุท เอาทํพุท มาตรฐานมารวมกับไฟล์
2. การผ่านค่า อาร์คิวเมนท์
3. กำหนดตัวแปร
4. กำหนดค่าตัวแปร
5. ฟังก์ชันภายใน
6. คอมเมนท์ หรือ คำอธิบาย

บล็อก { }

คือ การกำหนด บล็อก ของ ฟังก์ชัน ถ้าโปรแกรมมีขนาดมากน้อยเพียงใดก็ได้ สามารถกำหนดบล็อกซ้อนกันได้ และ บล็อกเปิด ต้องเท่ากับ บล็อก ปิด
{......{......{......}......}....}

การกำหนดตัวอักษรในการพิมพ์


ใช้ตัวอักษรพิมพ์เล็กในการเขียนโปรแกรม ได้แก่ คำสั่ง หรือ ฟังก์ชันต่าง ๆ
ตัวอักษร พิมพ์เล็ก และ พิมพ์ใหญ่ ให้ความหมายต่างกัน ใช้ในการกำหนดตัวแปร และชุดข้อความ (สตริง)

รู้จักกับภาษา C++

 

 




ภาษา C++ เป็นลูกผสมระหว่างภาษา Simula และ ภาษา C นั่นเอง ภาษา C++ รับเอาแนวคิดของภาษา C มากว่า 95% ประยุกต์เข้ากับแนวคิดเชิงวัตถุของ Simula ทำให้ภาษา C++ เป็นลูกผสมระหว่าง Procedural Language และ Object Oriented Language เราไม่สามารถบอกได้ว่า C++ เป็น OOP 100% มันไม่ใช่ครับ คุณเลือกแบบภาษา C ก็ยังได้

ในยุคหนึ่งภาษา C++ เป็นภาษาที่ถูกพิจารณาว่าทำงานช้า ก็เล่นไปเปรียบเทียบกับภาษา C หรือ Assembly นี่ครับ ภาษา C++ อิงกับการใช้งาน Indirect pointer อยู่มาก แต่ยุคนี้ภาษา C++ ถูกพิจารณาว่าเป็นภาษาที่ทำงานบน GUI OS ได้เร็วที่สุด (2 ภาษาข้างต้นยุ่งยากเกินไป) ดังนั้น โปรแกรมเมอร์ที่แท้กลับมาอีกแล้วครับ โปรแกรมเมอร์ที่แท้ต้องเขียน C++ ได้ ผมว่ามันไปกันใหญ่แล้วครับ

ภาษา C++ เป็นภาษาที่ละโมบพอสมควรครับ การออกแบบเน้นให้เป็นภาษา Superman มีโครงสร้างครบถ้วนที่สุด ปรับแต่งได้แทบทุกจุด ทำให้ Syntax ของภาษา C++ มีความซับซ้อนมาก โดยเฉพาะอย่างยิ่ง ความต้องการที่รองรับ Generic Programming และ Multiple Inheritance ทำให้ภาษา C++ ตั้งปรับโครงสร้างของภาษา เพื่อให้รองรับได้ แต่มีโปรแกรมน้อยกว่า 1% ครับที่ดึงเอาความสามารถเหล่านั้นมาใช้งานจริงๆ แต่โปรแกรมอีก 99% ต้องรองรับความยุ่งยากของ Syntax มีหลายคนว่าไม่คุ้มครับ

ถ้าจะกล่าวไปแล้ว ภาษา C++ รองรับ OOP ค่อนข้างเต็มรูป แต่นั่นแหละครับ มันเหมือนกับการตายน้ำตื้น ที่ภาษา C++ ยังยอมรับ pointer และการจอง Memory จาก OS ทำให้เกิดปัญหาเดียวกับภาษา C ซึ่งยังแก้ไม่ตกในยุคปัจจุบัน ทุกวันนี้ เรายังเห็นโปรแกรมจากบริษัทใหญ่ๆ เขียนจากโปรแกรมเมอร์ระดับโลก มีปัญหาเรื่อง Memory Leak อยู่ และ Pointer ชี้ออกนอกลู่นอกทางก็ยังเห็นอยู่ทั่วไปครับ

ถ้าใครคิดจะศึกษา OOP ให้ลึก แต่ไม่สามารถอ่านภาษา C++ รู้เรื่อง ผมว่ายากครับ หนังสือเกี่ยวกับ OOP ดีๆ ส่วนมาก จะอิงกับภาษา C++ ครับ


 

 

 

 

ตอนนี้คุณอยู่ที่ - ภาษา C/C++ - เกริ่นนำ - รู้จักกับภาษา C/C++