मान लीजिए मेरे पास:
int a; Int b; वेरिएबल्स a और b नाम के बराबर (अधिक विशेष रूप से, आदिम प्रकारों के प्रकार के नाम नहीं हैं, वे हो सकते हैं धन्यवाद
नाम (और ठीक से, नाममात्र) तुल्यता का मतलब है कि मूल्यों के समान प्रकार हैं, जो कि उनके प्रकार के (पूर्णतः योग्य) नाम से निर्धारित होते हैं - उदाहरण के लिए, a और b नाममात्र रूप से समरूप होते हैं क्योंकि वे दोनों "Int" प्रकार है स्ट्रक्चरल तुल्यता का मतलब है कि मूल्यों को एक ही प्रकार माना जाता है क्योंकि उनके प्रकार संरचनात्मक रूप से बराबर हैं, नाम की परवाह किए बिना। नाममात्र प्रकार समकक्ष का मतलब संरचनात्मक प्रकार समकक्ष होता है क्योंकि एक नामित प्रकार उसके मुकाबले संरचनात्मक रूप से बराबर है। आपका एक और b , नाममात्र प्रकार के बराबर हैं क्योंकि उनके पास नाम ("इंट") द्वारा समान प्रकार है। यह दावा है कि "आदिम प्रकारों के प्रकार के नाम नहीं" केवल झूठे हैं - int एक प्रकार का नाम है और int a में कोई अंतर नहीं है; Int b; और int a, b; - दोनों को परिभाषित a और b उसी के साथ (संरचनात्मक और नाम से) टाइप करें। सी का प्रकार सिस्टम आमतौर पर नाम से होता है ... जैसे, int * और short * भिन्न प्रकार हैं, भले ही int < / कोड> और छोटा के पास एक ही प्रतिनिधित्व है, और struct foo {int x; } और स्ट्रेट बार {int x; } अलग-अलग प्रकार के होते हैं हालांकि वे हमेशा एक ही प्रतिनिधित्व करते हैं।
Comments
Post a Comment