के साथ काम नहीं करता है मेरे पास कुछ विरासत कोड है जिसे आमतौर पर जीसीसी 3.4.4 के साथ पावरपीसी के लिए संकलित किया गया था। अब मैं कुछ कोड भागों को पोर्ट कर रहा हूं जिन्हें मैं मिनीजीडब्ल्यू से जीसीसी 4.8.1 के साथ संकलित करना चाहता हूं।यूआईटी 8 की रिडंडेंट कास्ट जीसीसी 4.8.1
// Prototypes
void foo(uint8* pData);
uint8 bar();
// Function
void foo(uint8* pData)
{
(uint8) *(pData++) = bar(); // Original Code - Doesn't work with GCC 4.8.1
*(pData++) = bar(); // Works with GCC 4.8.1
}
अगर मैं जीसीसी 4.8.1 के साथ मूल कोड से लाइन संकलित करने के लिए चाहते हैं मैं lvalue required as left operand of assignment
त्रुटि मिलती है: कोड में कुछ बिंदु पर मैं इस पाया। अगर मैं कास्ट ऑपरेटर से छुटकारा पाता हूं तो यह ठीक काम करता है। क्या कोई समझा सकता है कि यह क्यों है? क्या वह सिर्फ अनावश्यक नहीं है और इससे कोई फर्क नहीं पड़ता? और यह जीसीसी 3.4.4 के साथ क्यों काम कर रहा है?
इस कलाकार का _purpose_ क्या है? यहां तक कि आप उस कथन का उपयोग रावल्यू के रूप में भी करते थे, कम से कम कास्ट अभी भी अनावश्यक/अनावश्यक है। –
@ फ्रैंकएच। यह विरासत कोड है - मैंने यह नहीं लिखा, इसलिए दुर्भाग्य से मैं आपको यह नहीं बता सकता कि कोड की इस पंक्ति के लिए प्रेरणा क्या थी। – Toby