C/C++ में, एक वेरिएबल नाम में अल्फाबेट्स, नंबर्स और अंडरस्कोर (_) कैरेक्टर हो सकते हैं। C/C++ भाषा में कुछ कीवर्ड्स हैं, उनके अलावा सब कुछ आइडेंटिफायर माना जाता है। आइडेंटिफायर्स वेरिएबल, कॉन्स्टेंट्स, फंक्शन्स आदि के नाम हैं।
हम उस आइडेंटिफायर को निर्दिष्ट नहीं कर सकते जो नंबर से शुरू होता है क्योंकि कंपाइलर के सात चरण होते हैं जैसे:
- लेक्सिकल एनालिसिस
- सिंटैक्स एनालिसिस
- सेमेंटिक एनालिसिस
- इंटरमीडिएट कोड जनरेशन
- कोड ऑप्टिमाइजेशन
- कोड जनरेशन
- सिंबल टेबल
उपरोक्त में से कोई भी यह सपोर्ट नहीं करता कि वेरिएबल नंबर से शुरू हो। ऐसा इसलिए है क्योंकि कंपाइलर भ्रमित हो जाता है कि यह नंबर है या आइडेंटिफायर जब तक यह नंबर्स के बाद अल्फाबेट तक नहीं पहुंच जाता। इसलिए कंपाइलर को लेक्सिकल एनालिसिस फेज में वापस बैकट्रैक करना होगा जो सपोर्टेड नहीं है। कंपाइलर को पहले कैरेक्टर को देखने के बाद टोकन को आइडेंटिफायर या लिटरल के रूप में पहचानने में सक्षम होना चाहिए।
निम्नलिखित एक उदाहरण है जो 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;
}
उपरोक्त प्रोग्राम "invalid suffix 's' on integer constant" एरर की ओर ले जाता है क्योंकि वेरिएबल 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