नोट: मैंने गलती से static_cast
मूल रूप से पूछा; यही कारण है कि शीर्ष जवाब पहले static_cast
का उल्लेख करता है।क्या यह फ़्लोट करने के लिए एक पूर्णांक reinterpret_cast सुरक्षित है?
मेरे पास कुछ एंडिनल फ्लोट मानों वाली कुछ बाइनरी फ़ाइलें हैं। मैं उन्हें मशीन-स्वतंत्र तरीके से पढ़ना चाहता हूं। मेरी बाइट-स्वैपिंग दिनचर्या (एसडीएल से) हस्ताक्षरित पूर्णांक प्रकारों पर काम करती है।
क्या यह स्याही और फ्लोट्स के बीच बस डालना सुरक्षित है?
float read_float() {
// Read in 4 bytes.
Uint32 val;
fread(&val, 4, 1, fp);
// Swap the bytes to little-endian if necessary.
val = SDL_SwapLE32(val);
// Return as a float
return reinterpret_cast<float &>(val); //XXX Is this safe?
}
मैं चाहता हूं कि यह सॉफ्टवेयर यथासंभव पोर्टेबल हो।
आप पॉइंटर या संदर्भ प्रकारों में केवल 'reinterpret_cast' कर सकते हैं; आपके द्वारा पोस्ट किया गया कोड संकलित नहीं होगा। – Praetorian
आप शायद फ्लोट परिणाम = reintrepret_cast (वैल) जैसे कुछ मतलब; –
ओह। मुझे वास्तव में पहले संकलित करने की कोशिश करनी चाहिए:/ – QuasarDonkey