我正在为Little Endian使用Visual Studio TC编译器.
以下是这段代码:
以下是这段代码:
void main() { float c = 1.0; int a = 0x3F800000; int *ptr = (int *)&c; printf("\n0x%X\n",*ptr); printf("\na = %f",a); printf("\nc = %f",c); return; }
输出是:
0x3F800000 a = 0.000000 c = 1.000000
浮点值1.0为0x3F800000,并在内存中存储为00 00 80 3F,适用于Little Endian.
将相同的值分配给int a. printf如何打印0.000000一段时间1.000000 for float c?我已经看到它在printf中使用%f打印时将所有整数值打印为0.000000.
另外,由于printf是可变参数函数,它如何知道寄存器中传递的值是int还是float?
解决方法
原文地址:https://www.jb51.cc/c/119483.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。