截断nasm函数返回值

时间:2015-06-17 13:52:33

标签: c if-statement nasm

我正在使用一个nasm sse函数在C程序中返回一个浮点值。 如果我将这个值直接放在if条件下,一切都可以正常工作,但是如果我将它保存在一个浮点变量中,它会被剪切为一个整数,然后转换为一个浮点数。例如:

if(dist_cent(T,nearest_q-1,T,q,d) > k){
                        ...
}//if   

dist_cent是我的nasm函数,这样我得到245.73465作为它的值。如果我这样写:

float f = dist_cent(T,nearest_q-1,T,q,d);
if(f > k){
                        ...
}//if   

我得到245.000000作为f值。 nasm函数的返回值存储在x87堆栈的顶部。 是否有解释和方法来避免这种情况?

0 个答案:

没有答案