หน่วยที่ 2 โครงสร้างภาษาซีเบื้องต้น (ต่อ)

หน่วยที่ 2 โครงสร้างภาษาซีเบื้องต้น (ต่อ)

          รูปแบบคำสั่งในภาษาซี  มีกฏเกณฑ์ในการเขียนคำสั่ง  ดังนี้

  • ทุกคำสั่งต้องเขียนด้วยอักษรตัวเล็กเสมอ เช่นคำสั่ง  printf , scanf , for เป็นต้น
  • ทุกคำสั่งจะใช้เครื่องหมาย ; แสดงการจบของคำสั่ง เช่น printf(“Hello”) ;
  • การเขียนคำสั่งจะเขียนได้แบบอิสระ (Free Format) เขียนหลาย ๆ คำสั่งต่อกันได้ในบรรทัดเดียว  
  • (หมายเหตุ เช่น  printf(“Hello”);  printf(“Good”);   a = 5;)
  • เมื่อเขียนโปรแกรมภาษาซีซอร์สไฟล์ (Source file) การตั้งชื่อไฟล์งานจะต้องเป็นนามสกุล  *.c
  • คอมเมนต์ (comment) ส่วนที่เป็นหมายเหตุให้ผู้เขียนโปรแกรมใส่ข้อความอธิบายในภาษาซีมี 2 แบบคือ แบบบรรทัดเดียว ใช้เครื่องหมาย  // และ แบบหลายบรรทัด ใช้เครื่องหมาย /* ... */ ข้อควรระวัง คอมเมนต์แบบหลายบรรทัด จะไม่สามารถใช้คอมเมนต์ซ้อนคอมเมนต์ได้

           ตัวอย่างโปรแกรมภาษาซี (Download Program : Block Code)

#include <stdio.h>   

 /* #include  เป็นการแจ้งให้คอมไพเลอร์อ่านไฟล์อื่นเข้ามาคอมไพร่วมด้วย

     stdio.h [Standard Input Output] ใช้สำหรับเรียกไฟล์ที่ใช้ในการทำงาน  

     stdio.h เป็นชุดฟังก์ชันในการรับค่าและแสดงผลต่างๆ เช่น scanf(), printf() */  

#define sts 10  /* กำหนดค่าคงที่ sts = 10 

    ค่าคงที่ (constant) เป็นค่าในหน่วยความจำที่มีค่าคงที่ตลอดโปรแกรม */                                          

void main()         //main( )  ฟังก์ชันหลักที่ไม่มีการส่งค่าไปยังฟังก์ชันอื่น 

{                         //สัญลักษณ์ { ระบุจุดเริ่มต้นฟังก์ชั่นหลัก           
int x, y=9;   /* จัดเก็บข้อมูลในหน่วยความจำรูปแบบ var_type var_name [,...] และรูปแบบ var_type var_name = data;      */

printf("Input value = ");    //คำสั่งแสดงผลข้อความ 
scanf("%d",&x);      //คำสั่งรับข้อมูลจากแป้นพิมพ์จัดเก็บลงตัวแปร
x = x+5+sts+y;
printf("\nThe sum = %d",x);  
/*คำสั่งแสดงผล \n ขึ้นบรรทัดใหม่ และ %d แสดงผลตัวแปร x  */

return 0;                                   //สัญลักษณ์ } ระบุจุดสิ้นสุดฟังก์ชั่นหลัก           

           หมายเหตุ สรุปรูปแบบคำสั่ง (ทบทวนซ้ำ)

  • ชื่อฟังก์ชันและคำสั่งในภาษาซีต้องเขียนด้วยตัวอักษรตัวเล็ก  (lowercase letter) ทั้งหมดเพราะตัวแปรภาษา [C  compiler] คิดว่าตัวอักษรตัวใหญ่  (uppercase letter)  กับตัวอักษรตัวเล็กแตกต่างกัน  เช่น  main( ) ไม่เหมือนกับ Main( )  หรือ MAIN( )  เป็นต้น     
  • ส่วนของการเขียนคำสั่งจะจบด้วยเครื่องหมาย เซมิโคลอน (Semi colon ) เสมอ   

ตัวแปรกับชนิดของข้อมูล [Variable and Data Type]

           ตัวแปร (Variable) ในภาษาซี (C) หมายถึง ชื่อที่กำหนดขึ้นเพื่อใช้ในการเก็บข้อมูล หรือ ชื่อที่ใช้ในการอ้างอิงพื้นที่ในหน่วยความจำหลัก ที่จองไว้เก็บข้อมูล ตัวอย่างเช่น a = 191; z = “Hello”; เมื่อเราต้องการใช้ข้อมูล 191 เรียกใช้จากตัวแปร a หรือต้องการใช้ข้อมูล Hello ให้เราเรียกใช้จากตัวแปร z เป็นต้น

    หลักการตั้งชื่อตัวแปรในภาษาซี

  • ต้องขึ้นต้นด้วยตัวอักษร A – Z หรือ a-z หรือเครื่องหมาย _ (เส้นใต้ : underscore) เท่านั้น
  • อักขระตัวต่อไปจะต้องเป็น A – Z หรือ a-z หรือเครื่องหมาย _ (underscore) หรือ 0-9 และห้ามมีช่องว่าง
  • ตัวพิมพ์ใหญ่พิมพ์เล็กถือว่าเป็นคนละตัวแปรกัน
  • ชื่อของตัวแปรในโปรแกรมเดียวกันจะซ้ำกันไม่ได้ยกเว้นจะอยู่ต่างฟังก์ชัน
  • การตั้งชื่อจะต้องไม่มีช่องว่าง
  • การตั้งชื่อมีความยาวสูงสุดไม่เกิน 31 ตัว
  • ชื่อของตัวแปรจะต้องไม่ซ้ำกับคำสงวนในภาษาซีและคำมาตรฐานที่คอมไพเลอร์รู้จัก

         สรุปหลักการตั้งชื่อตัวแปรในภาษาซีนำตัวอักขระอักษรตัวพิมพ์ใหญ่ A-Z อักษรพิมพ์เล็ก a-z และตัว 0-9 รวมถึงเครื่องหมาย_(Underscore) มาใช้เพื่อการตั้งชื่อตัวแปรได้ แต่มีข้อแม้ว่าตัวอักขระะตัวแรกจะต้องมีตัวอักษรเท่านั้น อย่างไรก็ตาม เครื่องหมาย_จะถือว่าเป็นตัวอักษรตัวหนึ่ง ดังนั้นจึงสามารถนำมาตั้งชื่อตัวแปรตัวแรกได้ ตัวอักษรตัวพิมพ์ใหญ่ และตัวอักษรตัวพิมพ์เล็กมีความแตกต่างกัน และชื่อตัวแปรจะต้องไม่ตรงกับคำสงวน   [หมายเหคุ ห้ามขึ้นต้นชื่อตัวแปรด้วยตัวเลข! และการตั้งชื่อจะไม่ประกอบด้วยอักขระพิเศษ เช่น $ , @ , # , & ใช้ตั้งชื่อไม่ได้]

          คำสงวน (reserved word) หรือชื่อเฉพาะในภาษาซี ได้แก่ auto,  break,  case,  char, const,  continue, d (declaration), default,  do,  double, else, enum,  extern, float,  for,  goto,  if, int, long, register,  return, short,  signed, sizeof,  static, struct,  switch, typedef, union,  unsigned, void, volatile,  while,[ รวมไปจนถึง _ds, _es, _Packed, _ss ] เป็นต้น

          ตัวอย่างการตั้งชื่อภาษาซีที่ถูกต้อง เช่น Napat, napat, Hana, hana, _Kong, _kong, Love999, love999, Com_tech เป็นต้น      

          ตัวอย่างการตั้งชื่อภาษาซีที่ไม่ถูกต้อง เช่น 123Hello ไม่ถูกต้องเนื่องจากขึ้นต้นด้วยตัวเลข, $king ไม่ถูกต้องเนื่องจากขึ้นต้นด้วยตัวอักษรพิเศษ, data%napat ไม่ถูกต้องเพราะภายในชื่อมีตัวอักษรพิเศษ, Hi-tech ไม่ถูกต้องเนื่องจากมีเครื่องหมายลบ, First  name ไม่ถูกต้องเนื่องจากมีช่องว่าง, const ไม่ถูกต้องเนื่องจากเป็นคำสงวน เป็นต้น                                              


รหัสแบ็กสแลช (ฺBackslash) ได้แก่

หมายเหตุ   \xhh เป็นเลขฐานสิบหก เช่น \x12 ,  \? = เครื่องหมายคำถาม Question mark   เป็นต้น

โปรแกรมตัวอย่าง

#include <stdio.h>
main()
 //หรือเขียนฟังก์ชั่นหลักรูปแบบ   main(void)  หรือรูปแบบ int main(void) 
{
    printf("\n  - \a -  \b - \f -  \r  -  \v -  \'  -  \?  -  \x11 -  \x12");
}

/* หมายเหตุ  void  แปลว่า ไม่ส่งค่ากลับ หรือ ไม่มีการคืนค่า

สำหรับการเขียนฟังก์ชั่นหลักรูปแบบ int main() {... return 0; } เพราะตัวตรวจจะต้องการค่า exit status 0 (หมายถึงจบการทำงานถูกต้อง) ก่อนจะตรวจโปรแกรม ซึ่ง int main() และ main() นั้นเหมือนกัน เพราะการไม่ระบุชนิดของฟังก์ชัน มีค่าเท่ากับการให้เป็น int โดยอัตโนมัติ */