ความรู้เบื้องต้นเกี่ยวกับโปรแกรมภาษา C
จากบทที่ 1 เราได้ทราบความรู้พื้นฐานการเขียนโปรแกรมไปแล้ว สำหรับเนื้อหาในบทนี้จะกล่าวถึงความรู้เบื้องต้นเกี่ยวกับโปรแกรมภาษา C โดยประกอบไปด้วยเรื่อง ประวัติความเป็นมาของภาษา C โครงสร้างอย่างง่ายของโปรแกรมภาษา C คำอธิบายในโปรแกรมภาษา C ขั้นตอนการพัฒนาโปรแกรมภาษา C ข้อมูลของภาษา C ตัวดำเนินการต่าง ๆ ลำดับการทำงานของตัวดำเนินการ นิพจน์ และการแปลงชนิดข้อมูลของภาษา C โดยแต่ละเรื่องมีรายละเอียดดังต่อไปนี้
2.1 ประวัติความเป็นมาของภาษา C
ภาษา C ถูกสร้างขึ้นครั้งแรก โดย Dennis M.Ritchie ซึ่งทำงานอยู่ที่ Bell Telephone Laboratories, Inc. (ปัจจุบันนี้คือ AT&T Bell Laboratories) ประมาณปี ค.ศ.1970 โดย Ritchie พัฒนาภาษา C มาจากภาษา BCPL และภาษา B ซึ่งในระยะแรกนี้ภาษา C ถูกนำมาใช้ภายใน Bell Laboratories เท่านั้น จนกระทั่งปี ค.ศ.1978 Brian W.Kerninghan และ Dennis M. Ritchie ได้กำหนดนิยาม ลักษณะ และรายละเอียดของภาษา C ขึ้น โดยเขียนหนังสือชื่อว่า “The C Programming Language” (สำนักพิมพ์ Prentice Hall) ออกมาเป็นเล่มแรกต่อมาบริษัทคอมพิวเตอร์ต่าง ๆ ได้เริ่มสนใจ และค้นคว้าพัฒนาภาษา C โดยอ้างอิงภาษา C ของ Kernighan และ Ritchie ทำให้มีการพัฒนา C compiler และ C interpreter ขึ้นมาเพื่อให้สามารถใช้กับเครื่องคอมพิวเตอร์ได้หลาย ๆ ชนิด และสามารถใช้กับโปรแกรมต่าง ๆ ที่บริษัทผลิตขึ้นเป็นการค้า จนกระทั่งปี ค.ศ.1985 ภาษา C ก็ได้รับความนิยมแพร่หลายไปทั่วโลก ซึ่งในช่วงนั้นภาษา C ที่ใช้กันอยู่มีมากมายหลายชนิด แล้วแต่บริษัทต่าง ๆ จะสร้างขึ้นซึ่งยังขาดมาตรฐานร่วมกัน ดังนั้นในปี ค.ศ.1988 Kernighan และ Ritchie จึงได้ร่วมกับสถาบัน ANSI (American National Standards Institute) ได้กำหนดนิยาม ลักษณะและกฎเกณฑ์ของภาษา C ที่เป็นมาตรฐานขึ้นเรียกว่า “ANSI C” ซึ่งปัจจุบันนี้บริษัทที่ผลิตภาษา C ไม่ว่าจะเป็นบริษัท Microsoft และบริษัท Borland ต่างก็ใช้มาตรฐานของ ANSI C เพื่อผลิตภาษา C รุ่นต่าง ๆ ต่อไป
2.2 โครงสร้างอย่างง่ายของโปรแกรมภาษา C
โปรแกรมภาษา C ที่สามารถ execute ได้ ทุกโปรแกรมจะมีโครงสร้างอย่างง่าย ดังนี้
1. มีฟังก์ชันชื่อว่า main( ) อย่างน้อยหนึ่งฟังก์ชัน จึงจะสามารถทำการ execute program ได้ลักษณะของฟังก์ชัน main( ) จะต้องเป็นฟังก์ชันที่ไม่มีการส่งค่าไปยังฟังก์ชันอื่น หรือไม่มี argument นั่นเองและจะต้องไม่มีการส่งค่ากลับมายังชื่อฟังก์ชัน โดยเราสามารถใช้คำว่า void นำหน้าฟังก์ชัน ซึ่ง main( ) สามารถเขียนได้ดังนี้ void main(void)
2. ขอบเขตฟังก์ชัน main (delimiters) ในโปรแกรมภาษา C ใช้เครื่องหมาย { แทนการเริ่มต้นฟังก์ชัน และใช้เครื่องหมาย } แทนการสิ้นสุดฟังก์ชัน ดังนั้นเมื่อเขียนฟังก์ชัน main( ) ทุกครั้งจะต้องมีเครื่องหมาย { และ } อยู่ด้วยเสมอ
3. การปิดท้ายคำสั่งในภาษา C จะต้องใช้เครื่องหมาย ; (semicolon) เป็นการบ่งชี้ให้ C compiler ทราบว่าจบคำสั่ง (statement) แต่ละคำสั่งแล้ว
4. ชื่อฟังก์ชันและคำสั่งในภาษา C จะต้องเขียนด้วยตัวอักษรตัวเล็ก (lowercase letter) ทั้งหมดทั้งนี้เพราะ C compiler จะคิดว่าตัวอักษรตัวใหญ่ (uppercase letter) กับตัวอักษรตัวเล็ก แตกต่างกัน เช่น main( ) ไม่เหมือนกับ Main( ) หรือ MAIN( ) เป็นต้น
5. ชื่อตัวแปร (variable name) สามารถตั้งชื่อโดยใช้ ตัวอักษรตัวเล็กหรือตัวอักษรตัวใหญ่ก็ได้หรือใช้ตัวอักษรตัวเล็กกับตัวอักษรตัวใหญ่ผสมกันก็ได้ อาทิเช่น ชื่อตัวแปร name ไม่เหมือนกับ Name หรือ NAME เป็นต้น เพราะว่าลักษณะของภาษา C จะสามารถจำแนกความแตกต่างของตัวอักษรตัวเล็กและตัวใหญ่ได้ ดังนั้นเราสามารถใช้ตัวอักษรตัวเล็ก a ถึง z และตัวอักษรตัวใหญ่ A ถึง Z มาตั้งชื่อตัวแปรได้ หรือจะตั้งชื่อตัวแปรเหมือนกัน ทุกประการได้ เช่นชื่อตัวแปร a กับ a ก็ได้ แต่ตัวแปรทั้ง 2 ตัวนี้จะต้องอยู่ต่างฟังก์ชันกันเท่านั้น ถ้าอยู่ในฟังก์ชันเดียวกัน compiler จะบอกข้อผิดพลาดออกมา ซึ่งหลักเกณฑ์การตั้งชื่อตัวแปรจะอธิบายอย่างละเอียดในหัวข้อ 2.5.2
จากลักษณะโครงสร้างอย่างง่ายของภาษา C ดังกล่าวมาข้างต้นนั้น สามารถเขียนรูปแบบโครงสร้างอย่างง่าย ของโปรแกรมได้ดังนี้
รูปแบบโครงสร้างอย่างง่ายของโปรแกรมภาษา C
# include<stdio.h>
void main(void)
{
คำสั่งประกาศตัวแปร;
คำสั่งหรือฟังก์ชันต่าง ๆ;
}
ภาษา C ถูกสร้างขึ้นครั้งแรก โดย Dennis M.Ritchie ซึ่งทำงานอยู่ที่ Bell Telephone Laboratories, Inc. (ปัจจุบันนี้คือ AT&T Bell Laboratories) ประมาณปี ค.ศ.1970 โดย Ritchie พัฒนาภาษา C มาจากภาษา BCPL และภาษา B ซึ่งในระยะแรกนี้ภาษา C ถูกนำมาใช้ภายใน Bell Laboratories เท่านั้น จนกระทั่งปี ค.ศ.1978 Brian W.Kerninghan และ Dennis M. Ritchie ได้กำหนดนิยาม ลักษณะ และรายละเอียดของภาษา C ขึ้น โดยเขียนหนังสือชื่อว่า “The C Programming Language” (สำนักพิมพ์ Prentice Hall) ออกมาเป็นเล่มแรกต่อมาบริษัทคอมพิวเตอร์ต่าง ๆ ได้เริ่มสนใจ และค้นคว้าพัฒนาภาษา C โดยอ้างอิงภาษา C ของ Kernighan และ Ritchie ทำให้มีการพัฒนา C compiler และ C interpreter ขึ้นมาเพื่อให้สามารถใช้กับเครื่องคอมพิวเตอร์ได้หลาย ๆ ชนิด และสามารถใช้กับโปรแกรมต่าง ๆ ที่บริษัทผลิตขึ้นเป็นการค้า จนกระทั่งปี ค.ศ.1985 ภาษา C ก็ได้รับความนิยมแพร่หลายไปทั่วโลก ซึ่งในช่วงนั้นภาษา C ที่ใช้กันอยู่มีมากมายหลายชนิด แล้วแต่บริษัทต่าง ๆ จะสร้างขึ้นซึ่งยังขาดมาตรฐานร่วมกัน ดังนั้นในปี ค.ศ.1988 Kernighan และ Ritchie จึงได้ร่วมกับสถาบัน ANSI (American National Standards Institute) ได้กำหนดนิยาม ลักษณะและกฎเกณฑ์ของภาษา C ที่เป็นมาตรฐานขึ้นเรียกว่า “ANSI C” ซึ่งปัจจุบันนี้บริษัทที่ผลิตภาษา C ไม่ว่าจะเป็นบริษัท Microsoft และบริษัท Borland ต่างก็ใช้มาตรฐานของ ANSI C เพื่อผลิตภาษา C รุ่นต่าง ๆ ต่อไป
2.2 โครงสร้างอย่างง่ายของโปรแกรมภาษา C
โปรแกรมภาษา C ที่สามารถ execute ได้ ทุกโปรแกรมจะมีโครงสร้างอย่างง่าย ดังนี้
1. มีฟังก์ชันชื่อว่า main( ) อย่างน้อยหนึ่งฟังก์ชัน จึงจะสามารถทำการ execute program ได้ลักษณะของฟังก์ชัน main( ) จะต้องเป็นฟังก์ชันที่ไม่มีการส่งค่าไปยังฟังก์ชันอื่น หรือไม่มี argument นั่นเองและจะต้องไม่มีการส่งค่ากลับมายังชื่อฟังก์ชัน โดยเราสามารถใช้คำว่า void นำหน้าฟังก์ชัน ซึ่ง main( ) สามารถเขียนได้ดังนี้ void main(void)
2. ขอบเขตฟังก์ชัน main (delimiters) ในโปรแกรมภาษา C ใช้เครื่องหมาย { แทนการเริ่มต้นฟังก์ชัน และใช้เครื่องหมาย } แทนการสิ้นสุดฟังก์ชัน ดังนั้นเมื่อเขียนฟังก์ชัน main( ) ทุกครั้งจะต้องมีเครื่องหมาย { และ } อยู่ด้วยเสมอ
3. การปิดท้ายคำสั่งในภาษา C จะต้องใช้เครื่องหมาย ; (semicolon) เป็นการบ่งชี้ให้ C compiler ทราบว่าจบคำสั่ง (statement) แต่ละคำสั่งแล้ว
4. ชื่อฟังก์ชันและคำสั่งในภาษา C จะต้องเขียนด้วยตัวอักษรตัวเล็ก (lowercase letter) ทั้งหมดทั้งนี้เพราะ C compiler จะคิดว่าตัวอักษรตัวใหญ่ (uppercase letter) กับตัวอักษรตัวเล็ก แตกต่างกัน เช่น main( ) ไม่เหมือนกับ Main( ) หรือ MAIN( ) เป็นต้น
5. ชื่อตัวแปร (variable name) สามารถตั้งชื่อโดยใช้ ตัวอักษรตัวเล็กหรือตัวอักษรตัวใหญ่ก็ได้หรือใช้ตัวอักษรตัวเล็กกับตัวอักษรตัวใหญ่ผสมกันก็ได้ อาทิเช่น ชื่อตัวแปร name ไม่เหมือนกับ Name หรือ NAME เป็นต้น เพราะว่าลักษณะของภาษา C จะสามารถจำแนกความแตกต่างของตัวอักษรตัวเล็กและตัวใหญ่ได้ ดังนั้นเราสามารถใช้ตัวอักษรตัวเล็ก a ถึง z และตัวอักษรตัวใหญ่ A ถึง Z มาตั้งชื่อตัวแปรได้ หรือจะตั้งชื่อตัวแปรเหมือนกัน ทุกประการได้ เช่นชื่อตัวแปร a กับ a ก็ได้ แต่ตัวแปรทั้ง 2 ตัวนี้จะต้องอยู่ต่างฟังก์ชันกันเท่านั้น ถ้าอยู่ในฟังก์ชันเดียวกัน compiler จะบอกข้อผิดพลาดออกมา ซึ่งหลักเกณฑ์การตั้งชื่อตัวแปรจะอธิบายอย่างละเอียดในหัวข้อ 2.5.2
จากลักษณะโครงสร้างอย่างง่ายของภาษา C ดังกล่าวมาข้างต้นนั้น สามารถเขียนรูปแบบโครงสร้างอย่างง่าย ของโปรแกรมได้ดังนี้
รูปแบบโครงสร้างอย่างง่ายของโปรแกรมภาษา C
# include<stdio.h>
void main(void)
{
คำสั่งประกาศตัวแปร;
คำสั่งหรือฟังก์ชันต่าง ๆ;
}
เพื่อให้มีความเข้าใจเกี่ยวกับโครงสร้างอย่างง่ายของโปรแกรมภาษา C มากยิ่งขึ้น ให้ศึกษาจากโปรแกรมตัวอย่างภาษา C ดังต่อไปนี้
โปรแกรมตัวอย่างที่ 2.1 แสดงโปรแกรมภาษา C อย่างง่าย
/* simple.c */
#include<stdio.h> /* บรรทัดที่ 1 */
void main(void) /* บรรทัดที่ 2 */
{ /* บรรทัดที่ 3 */
printf(“Hello, C Language \n”); /* บรรทัดที่ 4 */
} /* บรรทัดที่ 5 */
โปรแกรมตัวอย่างที่ 2.1 แสดงโปรแกรมภาษา C อย่างง่าย
/* simple.c */
#include<stdio.h> /* บรรทัดที่ 1 */
void main(void) /* บรรทัดที่ 2 */
{ /* บรรทัดที่ 3 */
printf(“Hello, C Language \n”); /* บรรทัดที่ 4 */
} /* บรรทัดที่ 5 */
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากตัวอย่างโปรแกรมภาษา C ข้างต้นสามารถอธิบายการทำงานได้ดังนี้
คำอธิบายโปรแกรม
จากตัวอย่างโปรแกรมภาษา C ข้างต้นสามารถอธิบายการทำงานได้ดังนี้
บรรทัดที่ 1 #include<stdio.h> เป็นคำสั่งที่เรียกแฟ้มที่ชื่อว่า stdio.h ซึ่งภายในจะบรรจุคำสั่ง หรือฟังก์ชันที่จำเป็นต้องใช้ในภาษา C เช่น printf( ), scanf( ) เป็นต้น
บรรทัดที่ 2 void main(void) เป็นการบอกให้ C compiler รู้ว่าฟังก์ชัน main( ) เป็นฟังก์ชันที่ไม่มีการส่งค่าข้อมูล และไม่มีการรับค่าข้อมูลกลับ
บรรทัดที่ 3 เครื่องหมาย { เป็นการแสดงจุดเริ่มต้นของฟังก์ชัน main( )
บรรทัดที่ 4 คำสั่ง printf(“Hello, C Language \n”); เป็นคำสั่งที่ใช้พิมพ์ข้อความที่อยู่ในเครื่องหมาย “….” แสดงออกทางจอภาพแล้วขึ้นบรรทัดใหม่เพราะมีรหัส \n (new line)
บรรทัดที่ 5 เครื่องหมาย } เป็นการแสดงจุดสิ้นสุดของฟังก์ชัน main( )
บรรทัดที่ 2 void main(void) เป็นการบอกให้ C compiler รู้ว่าฟังก์ชัน main( ) เป็นฟังก์ชันที่ไม่มีการส่งค่าข้อมูล และไม่มีการรับค่าข้อมูลกลับ
บรรทัดที่ 3 เครื่องหมาย { เป็นการแสดงจุดเริ่มต้นของฟังก์ชัน main( )
บรรทัดที่ 4 คำสั่ง printf(“Hello, C Language \n”); เป็นคำสั่งที่ใช้พิมพ์ข้อความที่อยู่ในเครื่องหมาย “….” แสดงออกทางจอภาพแล้วขึ้นบรรทัดใหม่เพราะมีรหัส \n (new line)
บรรทัดที่ 5 เครื่องหมาย } เป็นการแสดงจุดสิ้นสุดของฟังก์ชัน main( )
สำหรับข้อความที่อยู่ในเครื่องหมาย /*.......*/ เป็นคำอธิบายในโปรแกรมภาษา C เพื่อที่จะอธิบายให้ผู้อ่านได้ทราบว่ากำลังทำอะไรในโปรแกรม ส่วนมากถ้าเขียนโปรแกรมที่มีขนาดใหญ่เราจำเป็นต้องใช้เครื่องหมาย /*.......*/ โดยที่ C compiler จะไม่ทำงานใด ๆ เมื่อเจอเครื่องหมาย /*… */ ซึ่งจะได้อธิบายอย่างละเอียดในหัวข้อถัดไป คือหัวข้อ 2.3 คำอธิบายในโปรแกรมภาษา C
2.3 คำอธิบายในโปรแกรมภาษา C
คำอธิบายในโปรแกรม (program comment) คือข้อความที่แทรกอยู่ภายในโปรแกรม ซึ่งคอมพิวเตอร์จะไม่แปลข้อความนี้ให้เป็นส่วนหนึ่งของโปรแกรม กล่าวคือจะไม่มีผลต่อการทำงานของโปรแกรม เขียนไว้เพื่ออธิบายโปรแกรม ซึ่งในบางครั้งผู้เขียนโปรแกรม อาจต้องการเขียนคำอธิบาย กำกับขั้นตอนการทำงานของโปรแกรมในแต่ละขั้น ทำให้เกิดประโยชน์กับผู้เขียนและผู้ที่อ่านโปรแกรมได้เข้าใจง่ายขึ้น และช่วยทำให้การแก้ไขและปรับปรุงโปรแกรมเป็นไปได้ง่ายยิ่งขึ้น
โปรแกรมตัวอย่างที่ 2.2 แสดงการใส่คำอธิบายในโปรแกรมบรรทัดเดียว โดยการใช้เครื่องหมาย /* หน้าข้อความที่อธิบาย และใส่เครื่องหมาย */ หลังสิ้นสุดข้อความที่อธิบาย
2.3 คำอธิบายในโปรแกรมภาษา C
คำอธิบายในโปรแกรม (program comment) คือข้อความที่แทรกอยู่ภายในโปรแกรม ซึ่งคอมพิวเตอร์จะไม่แปลข้อความนี้ให้เป็นส่วนหนึ่งของโปรแกรม กล่าวคือจะไม่มีผลต่อการทำงานของโปรแกรม เขียนไว้เพื่ออธิบายโปรแกรม ซึ่งในบางครั้งผู้เขียนโปรแกรม อาจต้องการเขียนคำอธิบาย กำกับขั้นตอนการทำงานของโปรแกรมในแต่ละขั้น ทำให้เกิดประโยชน์กับผู้เขียนและผู้ที่อ่านโปรแกรมได้เข้าใจง่ายขึ้น และช่วยทำให้การแก้ไขและปรับปรุงโปรแกรมเป็นไปได้ง่ายยิ่งขึ้น
โปรแกรมตัวอย่างที่ 2.2 แสดงการใส่คำอธิบายในโปรแกรมบรรทัดเดียว โดยการใช้เครื่องหมาย /* หน้าข้อความที่อธิบาย และใส่เครื่องหมาย */ หลังสิ้นสุดข้อความที่อธิบาย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น