电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

printf打印float错误引起的思考[1]


发布日期:2021/1/26
 

昨天跟一个朋友讨论一个问题

float n=

double n=

long n=

long n=

printf(%ld %ld %ld %ld\n n n n n

在x 位机上执行输出结果是 按照我的理解float和long在位机下都占个字节即使无法格式化为long进行输出后面的值也不至于都出问题

实际里面涉及以下的知识

把上面的代码反汇编可以看到

mov xb%eax

mov %eaxx(%esp)

mov xb%eax

mov %eaxx(%esp)

fldl xa fstpl xc(%esp)

flds xa fstpl x(%esp)

movl $x(%esp)

call xc <printf>

我先后把这几个变量定义成了局部和全局的进行了测试这段是用全局的汇编码

[] []

上一篇:ATLAS入门篇之CascadingDropDown控件编程[1]

下一篇:printf打印float错误引起的思考[2]