सी मानक की आवश्यकता है कि शून्य में locale.h
, stddef.h
, stdio.h
, stdlib.h
, string.h
, time.h
, और wchar.h
में परिभाषित किया जा।
सी ++ मानक के लिए आवश्यक है कि प्रत्येक को c*
शीर्षलेख में एनयूएलएल परिभाषित किया जाए।
सी मानक मानक नाम परिभाषित करने वाले नामों के बारे में बहुत सख्त है - प्रत्येक मानक शीर्षलेख को सटीक नामों को परिभाषित करना होगा मानक को उस हेडर को परिभाषित करने की आवश्यकता होती है। इसे परिभाषित करने वाले एकमात्र अन्य नाम वे हैं जो कार्यान्वयन के लिए आरक्षित हैं, जैसे कि अंडरस्कोर से शुरू होने वाले अन्य अंडरस्कोर या पूंजी पत्र के बाद।
सी ++ मानक इस संबंध में अधिक अनुमोदित है - जिसमें किसी एक मानक शीर्षलेख का प्रभाव किसी भी या सभी अन्य मानक शीर्षकों सहित हो सकता है।
एक व्यावहारिक दृष्टिकोण से, सी ++ कार्यान्वयन इस अनुमति के काफी लाभ लेने के लिए प्रयुक्त होता है - यानी, एक मानक शीर्षलेख सहित कई अन्य मानक शीर्षकों से नामों को अक्सर परिभाषित किया जाता है। अधिक हालिया कार्यान्वयन सी मानक की आवश्यकता के रूप में अधिक काम करते हैं, प्रत्येक शीर्षलेख के करीब रहना केवल उस शीर्षलेख द्वारा परिभाषित किए जाने वाले नामों को परिभाषित करता है। वे अभी भी इसके बारे में सख्त नहीं हैं क्योंकि सी मानक की आवश्यकता है, लेकिन वे (नियम के रूप में) होने के करीब थे।
स्रोत
2012-08-19 04:49:35
Btw, , और इसके बजाय nullptr का उपयोग किया जाना चाहिए। – wjl
यह ठीक है, लेकिन यह –
@wjl प्रश्न का उत्तर नहीं देता है: यहां तक कि सी ++ 03 में, मैं 'NULL' के बजाय' 0' का उपयोग करने की सलाह दूंगा। –