C ++ 11 मानक (जोर मेरा) से:
D.5 C मानक लाइब्रेरी हेडर [depr.c.headers]
- सी मानक पुस्तकालय के साथ संगतता के लिए ...
- प्रत्येक C हेडर, जिनमें से प्रत्येक का नाम name.h है , व्यवहार करता है जैसे कि प्रत्येक नाम के अनुरूप सीनाम हैडर द्वारा मानक लाइब्रेरी नेमस्पेस में रखा गया प्रत्येक नाम ग्लोबल नेमस्पेस दायरे में रखा गया है । यह अनिर्दिष्ट है कि इन नामों को पहले घोषित किया गया है या नाम स्थान std के नाम स्थान गुंजाइश (3.3.6) में परिभाषित किया गया है और फिर स्पष्ट उपयोग-घोषणाओं (7.3.3) द्वारा वैश्विक नाम स्थान गुंजाइश में इंजेक्ट किया जाता है।
- उदाहरण: हैडर
<cstdlib>
विश्वासपूर्वक अपनी घोषणाओं और परिभाषाओं प्रदान करता है नाम स्थान के अंदर
std
। यह वैश्विक नामस्थान के भीतर ये नाम भी प्रदान कर सकता है। हेडर <stdlib.h>
आश्वस्त रूप से वैश्विक नेमस्पेस के भीतर समान घोषणाएं और परिभाषाएं प्रदान करता है , जितना कि सी स्टैंडर्ड में। यह इन नामों को नामस्थान के भीतर भी प्रदान कर सकता है std
।
«Name.h» हेडर का उपयोग करके पदावनत किया जाता है, उन्हें भविष्य के संशोधनों से हटाने के लिए उम्मीदवारों के रूप में पहचाना जाता है।
इसलिए, मैं «cname» हेडर को शामिल करने और std
नाम स्थान से घोषणाओं और परिभाषाओं का उपयोग करने का सुझाव दूंगा ।
यदि आपको कुछ कारणों से «name.h» हेडर का उपयोग करना है (यह पदावनत है, तो ऊपर देखें), मैं वैश्विक नाम स्थान से घोषणाओं और परिभाषाओं का उपयोग करने का सुझाव दूंगा।
दूसरे शब्दों में: पसंद करते हैं
#include <cstdio>
int main() {
std::printf("Hello world\n");
}
ऊपर
#include <stdio.h>
int main() {
printf("Hello world\n");
}
C
वैश्विक प्रतीकों में पुस्तकालय प्रतीकों के डंपिंग को अनिवार्य करते हैं, मैं अवैध रूप सेstd::
योग्य संस्करणों का उपयोग करना पसंद करता हूं । (प्लस मैं चाहता हूं कि उन्होंने इसे अवैध बना दिया)।