[問題] 有關 short 轉double 問題

作者: s9642108 (sss)   2018-07-31 02:55:17
開發平台(Platform): (Ex: Win10, Linux, ...)
QT 5.10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
qt creator4.5.1
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
short tempData[10];
*(int *)tempData = 1;
*(double *)&tempData[1]=100;
qDebug() << " " << tempData[0];
qDebug() << " " << tempData[1];
請問為什麼 轉int結果是對的
但是double 卻是0呢
c++新手 求各位幫幫我 感謝
其中qDebug 相當於 cout
預期的正確結果(Expected Output):
1
100
錯誤結果(Wrong Output):
1
0
作者: Hazukashiine (私は幸せです)   2018-07-31 04:14:00
你 warning 有看了沒?short* 硬轉 double* 我不信編譯器沒報警告轉 int* 會對是 data model 設計的寬度一樣而已
作者: wei115 (ㄎㄎ)   2018-07-31 04:41:00
ieee754
作者: MOONRAKER (㊣牛鶴鰻毛人)   2018-07-31 15:34:00
真有創意的轉法。
作者: adrianshum (Alien)   2018-08-01 20:47:00
轉int會成功只是因為你在little endian 的平台吧。 big endian 會出現0 (不 core dump 的話)

Links booklink

Contact Us: admin [ a t ] ucptt.com