आइए सबसे पहले सहमत हैं कि ALL UPPERCASE एक आंखों की रोशनी है और इसे कम से कम किया जाना चाहिए।
C और C ++ में इसलिए इसे मैक्रोज़, और मैक्रोज़ के लिए एक सम्मेलन के रूप में उपयोग किया जाता है, क्योंकि मैक्रोज़ समान रूप से बदसूरत हैं, बुराई कहने के लिए नहीं।
अर्ली C में कॉन्स्टेंट नहीं था, इसलिए कॉन्स्टेंट को मैक्रोज़ के रूप में व्यक्त किया जाना था। इसके अलावा, उन शुरुआती दिनों के कार्यक्रम बहुत कम थे, ताकि आज जो प्रथाएँ हैं, उनका इस्तेमाल किया जा सके (जैसे IIRC ब्रायन कर्निघन ने बहुत सारे गैर अपरकेस मैक्रोज़ के साथ कोड लिखा है)। और यह भी, उन दिनों में जिन कीबोर्ड में लोअरकेस अक्षर नहीं थे, वे मौजूद थे; मैंने नॉर्वेजियन टंडबर्ग EC-10 कंप्यूटर पर 1980 या 1979 के बारे में ऐसा ही एक प्रयोग किया था, मुझे लगता है कि यह था।
तो, जावा ने सी। से शुरुआती के लिए अपरकेस सम्मेलन को उठाया। इस बीच, और शायद इससे पहले भी (मैं यहाँ कालक्रम के बारे में निश्चित नहीं हूं), सी को निरंतरता मिली। हालाँकि, बेशक कुछ / कई सी प्रोग्रामर स्थिरांक के पहले के सम्मेलन-दर-आवश्यकता में फंस गए थे क्योंकि अपरकेस मैक्रोज़, सी ++ प्रोग्रामर अधिक समझदार थे।
आजकल बड़ी समस्या यह है कि जब लोगों को पहले जावा, या सी (मध्य युग के सम्मेलनों के साथ) पढ़ाया जाता है, और फिर C ++ में आते हैं, तो उनके साथ उस बेईमानी से अधिवेशन लेकर।
इसलिए,
int const answer = 42; // Nice, good, OK.
const int ANSWER = 0x2A; // Ouch!
#define COMPANYNAME_ANSWER 052 // Oh kill me, please.
वैसे आपने सोचा होगा कि मैंने मजाक में केवल बड़े अक्षर का उल्लेख किया है। अरे नहीं। क्योंकि यह केवल सबसे पुराना, सबसे पुरातन तकनीकी सीमा है, जिसने नामकरण परंपराओं को संचालित किया है, या कम से कम प्रभावित किया है कि वे कैसे गलत / सही लग रहे थे। इसके बाद, 7-बिट सीरियल ट्रांसमिशन की समस्या थी, जिसके कारण इस्तेमाल किए गए वर्ण कोड (हेडस्क वर्ण चरित्र एन्कोडिंग) के साथ संबंधित समस्याएँ थीं, जिसका मतलब था कि आपको अंग्रेजी वर्णमाला, ए के माध्यम से जेड के अक्षरों में खुद को प्रतिबंधित करना होगा।
वास्तव में मैं अभी भी ऐसा करने की सलाह देता हूं। हम कहाँ पर हैं! हम आगे नहीं बढ़े हैं।
फिलहाल, 2011 तक, मानक C ++ नामों में सामान्य यूनिकोड का समर्थन करता है (और 1998 के बाद से ऐसा किया है), जबकि वास्तविक C ++ कार्यान्वयन नहीं है। विशेष रूप से जी ++ संकलक राष्ट्रीय चरित्र को चुनौती दी है। यह उस अंधेरे युग तकनीकी सीमा से उपजा है।
इसलिए,
double blueberryJamViscosity = 0.0; // OK
double blåbærsyltetøyViskositet = 0.0; // Ouch!
अंत में, अंडरस्कोर बनाम चौराहे पर अपरकेस अक्षरों के विषय में,
- टाइप नामों के लिए एक आसानी से मान्यता प्राप्त फॉर्म को आरक्षित करें
- मैक्रों के लिए आरक्षित करें।
- निरतंरता बनाए रखें।
मुझे लगता है कि वास्तव में, "लूप, टेम्प्लेट परम, ब्ला ब्ला" को छोड़कर "एकल अक्षर नाम से बचें" जैसे नियमों को छोड़कर, और "एल का उपयोग करने से बचें, आसानी से 1 से उलझन में" और "अपरकेस से बचें", आसानी से भ्रमित 0 के साथ "। इसके अलावा, बेशक, आरक्षित नामों का उपयोग करने से बचें, जैसे अपरकेस के बाद शुरू करना, दो क्रमिक अंडरस्कोर, या अंडरस्कोर के साथ शुरू करना और वैश्विक नेमस्पेस में होना।
चीयर्स एंड हर्थ