अधिक विशेष रूप से, typedef
'डी कई मामलों में कई अलग-अलग नामों के साथ क्यों है, और क्यों typedef
पॉइंटर प्रकार (समय पर तर्क को अस्पष्ट करना)?विंडोज एपीआई में सबकुछ टाइप क्यों किया गया है?
उदाहरण के लिए:
typedef const WCHAR *LPCWSTR, *PCWSTR;
कि की बात क्या है?
मुझे सबकुछ का पूरा विवरण नहीं पता है लेकिन विंडोज 3.1 के साथ 16-बिट दिनों में वापस सोचें। फिर, पास और दूर पॉइंटर्स के दो अलग-अलग प्रकार के पॉइंटर्स थे। उन्होंने एक समान इंटरफेस के लिए क्रमशः प्रत्येक ('पीसीडब्लूस्ट्र 'और' एलपीसीडब्लूआरटीएच) के लिए सूचक प्रकार परिभाषित किया। माइक्रोसॉफ्ट के पीछे की पिछली संगतता के कारण, हम एपीआई में इन दोनों प्रकारों के कारण छोड़ दिए गए हैं। –
असली सवाल यह है कि, वे अन्य सूचक प्रकारों को टाइप क्यों करते हैं जिनके पास उनके पीछे दूर सूचक इतिहास नहीं है? जैसे हैंडल, एचडब्ल्यूएनडी, हिस्टेंस इत्यादि। जहां तक मुझे पता है, उस सवाल का कोई तर्कसंगत उत्तर नहीं है। – Lundin
@ लंदन: हैंडल, एचडब्ल्यूएनडी और इसी तरह वास्तव में पॉइंटर्स नहीं हैं: वे अपारदर्शी हैंडल हैं जो विंडोज़ (यूजर, जीडीआई, केरल) के कुछ हिस्सों में निजी हैं। दृश्यों के पीछे, वे वास्तव में आंतरिक तालिकाओं या इसी तरह के सूचकांक के रूप में उपयोग किया जा सकता है। वे शून्य के रूप में टाइप किए गए हैं * विशेष रूप से यह स्पष्ट करने के लिए कि उन्हें केवल आस-पास के पास पारित किया जाना चाहिए और कोड को उनकी व्याख्या करने का प्रयास नहीं करना चाहिए (उदाहरण के लिए। उन पर अंकगणित करके - जो दुर्घटना से करना आसान होगा अगर वे int मूल्य कह रहे थे); उपरोक्त प्रश्नोत्तरी में टाइप किए गए लोगों के साथ क्या चल रहा है उससे अलग उद्देश्य। – BrendanMcK