दूसरों से पहले उल्लेख किया है, एक बहुत ही आम सम्मेलन नाम की अपरकेस संस्करण, और डॉट एक अंडरस्कोर द्वारा प्रतिस्थापित उपयोग करने के लिए है: foo.h -> FOO_H
हालांकि, इस के साथ नाम टकराव का कारण बन सकता सरल और/या आम नाम। इस कारण से, गैर खाली विज़ुअल सी सी ++ परियोजनाओं में stdafx.h की तरह स्वत: जनरेट की शीर्ष लेख संलग्न कुछ यादृच्छिक स्ट्रिंग, जैसे:
#ifndef FOO_H__NsknZfLkajnTFBpHIhKS
#define FOO_H__NsknZfLkajnTFBpHIhKS
#endif
http://www.random.org/strings/ इस के लिए एक उपयोगी यादृच्छिक जनरेटर है।कोड है कि # के अपने शीर्ष लेख शामिल पर
#ifndef SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
#define SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
namespace somecomponent
{
...
}
#endif
स्रोत
2011-02-01 21:06:11
नाम कम या ज्यादा सहज हो सकता है, इस तथ्य के साथ वह यह है कि एक छोटा सा अनुभव आप उन पंक्तियों को पढ़ना बंद कर देते हैं। आंखों और मस्तिष्क का उपयोग '#ifdef blahblah ... 'में किया जाता है और मैं शायद ही कभी वास्तव में पढ़ता हूं कि क्या जांच रहा है, इसमें एक गार्ड शामिल है। –
इस पर कुछ हद तक उपयोगी दृष्टिकोण: http://stackoverflow.com/questions/1744144/adding-an-include-guard-breaks-the-build/1744302#1744302 –
सी ++ विकास करने वाला कोई भी व्यक्ति हेडर गार्ड को पहचानने के लिए बेहतर उपयोग करता था बहुत जल्दी। यह हमेशा आपके द्वारा देखे जा रहे मानक का पालन करेगा। "बेस्ट" अभ्यास (उद्धरणों में क्योंकि यह आवश्यक है) पहले ifndef डालना है, तुरंत बाद परिभाषित करें, और फ़ाइल के अंत में इसे खत्म करें। मेरा सुझाव है कि आप इस एप को पहचानना सीखें। –