Witam wszystkich
Próbuje zapisać dane wygenerowane przez program do pliku ale podczas rzutowania za pomocą reinterpret_cast wskaźnika na prostą strukturę, przykładowo:
na wskaźnik typu char*, rezultat rzutowania ma zmieniony endian na big-endian, co jest bardzo dziwnym zachowaniem.
Zamieszczam poniżej prosty kod który był testowany pod Qt Creatorze 2.4.0 oraz MS Visula 2008 i w obydwóch środowiskach zachowanie jest identyczne.
Jak mi wiadomo mój procek operuje na little-endianie, dlatego prosił o odpowiedzenie na kilka pytań:
Co może być przyczyną takiego zachowania podczas rzutowania za pomocą operatora reinterpret_cast przy rzutowaniu wskaźnika na strukturę na wskaźnik char*?
Czy funkcja isBigEndian() może zwracać błędny wynik? Zaznaczam że funkcja isBigEndian() zwraca w obydwóch środowiskach wartość false.
Pracuje na laptopie marki Acer model Aspire 5740, OS Windows 7 i Qt Creator 2.4.0, procesor Intel®Core™i3 330M (2.13 GHz, 3MB L3 cache).[/code]
Próbuje zapisać dane wygenerowane przez program do pliku ale podczas rzutowania za pomocą reinterpret_cast wskaźnika na prostą strukturę, przykładowo:
Kod: text
na wskaźnik typu char*, rezultat rzutowania ma zmieniony endian na big-endian, co jest bardzo dziwnym zachowaniem.
Zamieszczam poniżej prosty kod który był testowany pod Qt Creatorze 2.4.0 oraz MS Visula 2008 i w obydwóch środowiskach zachowanie jest identyczne.
Kod: text
Jak mi wiadomo mój procek operuje na little-endianie, dlatego prosił o odpowiedzenie na kilka pytań:
Co może być przyczyną takiego zachowania podczas rzutowania za pomocą operatora reinterpret_cast przy rzutowaniu wskaźnika na strukturę na wskaźnik char*?
Czy funkcja isBigEndian() może zwracać błędny wynik? Zaznaczam że funkcja isBigEndian() zwraca w obydwóch środowiskach wartość false.
Pracuje na laptopie marki Acer model Aspire 5740, OS Windows 7 i Qt Creator 2.4.0, procesor Intel®Core™i3 330M (2.13 GHz, 3MB L3 cache).[/code]