[问题] 有关 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