#include <stdlib.h>
#include <stdio.h>
const float PI = 3.14f;
//const float PI = 3.14;
float getPI() {
return PI;
}
int main() {
printf("%d\n", sizeof(float));
return 0;
}
sizeof(float)是4.但在LLVM字节码中,3.14f由64位双0x40091EB860000000表示。
@PI = constant float 0x40091EB860000000, align 4
; Function Attrs: noinline nounwind uwtable
define float @getPI() #0 {
entry:
ret float 0x40091EB860000000
}
答案 0 :(得分:0)
浮点常数浮点常数使用标准小数 符号(例如123.421),指数符号(例如1.23421e + 2)或a 更精确的十六进制表示法(见下文)。 汇编程序需要 浮点常数的精确十进制值。例如, 汇编程序接受1.25但拒绝1.3,因为1.3是重复 二进制十进制。浮点常量必须具有浮点 类型。
还
使用十六进制形式时,类型的常量为half,float和 double使用上面显示的16位数字表示(其中 匹配IEEE754表示为double);