क्यों यह कोड अमान्य है?
typedef int INT; अहस्ताक्षरित INT एक = 6; जबकि निम्न कोड मान्य है
typedef int INT; स्थिर INT a = 1; ?
मेरी समझ के अनुसार अहस्ताक्षरित int एक "सरल प्रकार विनिर्देशक" नहीं है और इसलिए कोड बीमार बनाया है। मुझे यकीन नहीं है।
क्या कोई भी मानक के संबंधित अनुभाग को इंगित कर सकता है जो पहले कोड को अमान्य (और दूसरा कोड मान्य) बना देता है?
> संपादित करें
हालांकि उत्तर सही और बिंदु (उन्होंने अपने जवाब बीटीडब्ल्यू हटा दिया था) के रूप में लग रहा था, मैं अपनी शुद्धता और सटीकता के लिए जेम्स कूरन के उत्तर को स्वीकार कर लिया।
< / Div>
टाइप किए गएफ़ s मैक्रोज़ की तरह नहीं हैं वे सिर्फ पाठ प्रतिस्थापन नहीं हैं एक टाइपिप्पीफ़ एक नया टाइप नाम बना देता है।
अब जब आप अहस्ताक्षरित int कहते हैं, तो अहस्ताक्षरित एक संशोधक नहीं है जो कि पूर्णांक । अहस्ताक्षरित int पूरा टाइपनाम है; यह सिर्फ उसमें एक स्थान होता है।
अतः, जब आप typedef int INT कहते हैं, तब INT पूर्ण टाइपनाम है इसे संशोधित नहीं किया जा सकता।
स्थिर (जैसे const ) एक भंडारण श्रेणी निर्दिष्टकर्ता है। यह वास्तव में टाइप नाम का हिस्सा नहीं है।
Comments
Post a Comment