और यदि हां, तो कुछ Win32 शीर्षलेख इसका उपयोग क्यों करते हैं?"शून्य * कॉन्स्ट" के बराबर "कॉन्स्ट एलपीवीओआईडी" है?
उदाहरण के लिए:
BOOL APIENTRY VerQueryValueA(const LPVOID pBlock,
LPSTR lpSubBlock,
LPVOID * lplpBuffer,
PUINT puLen
);
एक थोड़ा और अधिक विस्तार: एपीआई (या किसी अन्य सी ++ - केवल निर्माण करती है) के संदर्भ में कभी नहीं का उपयोग करता है, लेकिन केवल संकेत और मूल्यों, const LPVOID
बनाम LPCVOID
होने की बात क्या है ।
क्या मुझे ऐसी जगह चाहिए जहां मैं को किसी स्थान के रूप में देख सकता हूं जहां वास्तविक अर्थ LPCVOID
है? (और इस प्रकार यह एक कास्ट जोड़ने के लिए सुरक्षित है)
और स्पष्टीकरण: ऐसा प्रतीत होता है कि const LPVOID pBlock
वास्तव में इस मामले में एक गलती थी। विंडोज 2008 एसडीके हस्ताक्षर में इसे LPCVOID
पर बदल देता है। कुछ समय पहले शराब ने ऐसा किया था।
मैंने सुना है कि वे उन चीजों को परिभाषित करते हैं, इसलिए यह 'कॉन्स्ट शून्य *' होगा। यदि वे टाइपपीफ हैं, तो यह वास्तव में 'शून्य * const' होगा। –
@litb: दुर्भाग्य से ये टाइप किए गए हैं – EFraim
@EFraim, आह मैं देखता हूं। शापित ऊपरी मामला :) –