2013-04-10 19 views
5

प्रकार की इकाई को असाइन नहीं किया जा सकता है, मैं एक सी प्रोजेक्ट को C++ में रूपांतरित करने का प्रयास कर रहा हूं।त्रुटि [पी 513]: "void *" प्रकार का मान "uint8_t *"

सी परियोजना जबकि ग में ++ संकलन मैं यह त्रुटि मुकाबला में:

#define RAM32Boundary 0x20007D00 
uint8_t *pNextRam; 
pNextRam = (void*)RAM32Boundary;// load up the base ram 

किसी को भी व्याख्या कर सकते हैं क्या यह करने के लिए सी और में कर कैसे जाता है:

Error[Pe513]: a value of type "void *" cannot be assigned to an entity of type "uint8_t *"

निम्नलिखित कोड इस त्रुटि देता है इसे सी ++ में परिवर्तित करें?

उत्तर

15

सी void* से अनुमानित रूपांतरणों की अनुमति देता है, जो सी ++ नहीं करता है। आपको सही प्रकार पर डालना होगा।

उपयोग:

uint8_t *pNextRam; 
pNextRam = (uint8_t*)RAM32Boundary;// load up the base ram 

या बेहतर अभी भी *, एक सी ++ शैली सी शैली के बजाय डाली का उपयोग .:

uint8_t *pNextRam; 
pNextRam = static_cast<uint8_t*>(RAM32Boundary);// load up the base ram 

* अभ्यास में, कास्टिंग कीड़े का एक आसान स्रोत है। सी ++ स्टाइल कास्ट आपके कोड के पाठक को आसानी से एक कास्ट और देखने के लिए अनुमति देता है ताकि संकलक आपकी कास्ट की शुद्धता को लागू कर सके।

+0

अच्छी तरह से इसके लिए धन्यवाद !!! –

संबंधित मुद्दे