昨天跟一个朋友讨论一个问题 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> 我先后把这几个变量定义成了局部和全局的进行了测试这段是用全局的汇编码 [] [] |