c函数返回失去精度

时间:2016-09-19 12:10:21

标签: c function return precision

我在file1.c中有一个名为dump的函数。

void dump(unsigned long val, unsigned char raw){

  unsigned long dec = 0;

  dec = hex(val);

}

hex函数在file2.c。

unsigned long hex(unsigned long hex){
   unsigned long result;
...
   return result;

}

由于某种原因,dec变量只包含2个字节的数据。如果我将十六进制函数放在与dump函数相同的文件中,它将包含所有数据。 dec变量是局部变量,不在其他任何地方使用。 有人知道为什么会这样吗?

如果我将hex函数放在file1.c中,它会给出正确的输出。所以十六进制函数中的逻辑正在工作。

1 个答案:

答案 0 :(得分:-2)

这可能是一个链接问题,而不是从正确的文件中选择hex()。尝试在没有file2.o的情况下进行链接,并且应该抱怨缺少的功能。