Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ทำไมตัวแปร C/C++ ไม่ขึ้นต้นด้วยตัวเลข


ในภาษา C/C++ ชื่อตัวแปรสามารถมีตัวอักษร ตัวเลข และขีดล่าง ( _ ) ได้ มีคีย์เวิร์ดบางคำในภาษา C/C++ นอกเหนือจากนั้นทุกอย่างจะถือเป็นตัวระบุ ตัวระบุคือชื่อของตัวแปร ค่าคงที่ ฟังก์ชัน ฯลฯ

เราไม่สามารถระบุตัวระบุที่ขึ้นต้นด้วยตัวเลขได้ เนื่องจากมีคอมไพเลอร์อยู่ 7 เฟส ดังนี้

  • การวิเคราะห์คำศัพท์
  • การวิเคราะห์ไวยากรณ์
  • การวิเคราะห์เชิงความหมาย
  • การสร้างโค้ดระดับกลาง
  • การเพิ่มประสิทธิภาพโค้ด
  • การสร้างโค้ด
  • ตารางสัญลักษณ์

ไม่มีข้อใดสนับสนุนให้ตัวแปรขึ้นต้นด้วยตัวเลข เนื่องจากคอมไพเลอร์สับสนว่าเป็นตัวเลขหรือตัวระบุจนกระทั่งถึงตัวอักษรหลังตัวเลข ดังนั้นคอมไพเลอร์จะต้องย้อนรอยไปยังขั้นตอนการวิเคราะห์คำศัพท์ที่ไม่รองรับ คอมไพเลอร์ควรสามารถระบุโทเค็นเป็นตัวระบุหรือตัวอักษรได้หลังจากดูอักขระตัวแรกแล้ว

ต่อไปนี้เป็นตัวอย่างที่แสดงการประกาศตัวแปรในภาษา C.

ตัวอย่าง

#include <stdio.h>
int main() {
   int 5s = 8;
   int _4a = 3;
   int b = 12;
   printf("The value of variable 5s : %d", 5s);
   printf("The value of variable _4a : %d", _4a);
   printf("\nThe value of variable b : %d", b);
   return 0;
}

โปรแกรมข้างต้นทำให้เกิดข้อผิดพลาด "s" ต่อท้ายไม่ถูกต้องในค่าคงที่จำนวนเต็ม" เนื่องจากตัวแปรเริ่มต้นด้วย 5 หากเราลบสิ่งนี้ โปรแกรมจะทำงานได้อย่างถูกต้อง

ตัวอย่างที่สาธิตโปรแกรมใหม่มีดังนี้

ตัวอย่าง

#include <stdio.h>
int main() {
   int _4a = 3;
   int b = 12;
   printf("The value of variable _4a : %d", _4a);
   printf("\nThe value of variable b : %d", b);
   return 0;
}

ผลลัพธ์

ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้

The value of variable _4a : 3
The value of variable b : 12