c 函数 return 失去精度
c function return loses precision
我在 file1.c 中有一个名为 dump 的函数。
void dump(unsigned long val, unsigned char raw){
unsigned long dec = 0;
dec = hex(val);
}
十六进制函数在file2.c.
unsigned long hex(unsigned long hex){
unsigned long result;
...
return result;
}
出于某种原因,dec 变量仅包含 2 个字节的数据。如果我将 hex 函数与 dump 函数放在同一个文件中,它包含所有数据。
dec 变量是局部变量,不在其他任何地方使用。
有人知道为什么会这样吗?
如果我将十六进制函数放在 file1.c 中,它会给出正确的输出。所以十六进制函数中的逻辑是有效的。
这可能是一个链接问题,没有从正确的文件中选取 hex()
。尝试在没有 file2.o
的情况下进行链接,它应该会抱怨缺少函数。
我在 file1.c 中有一个名为 dump 的函数。
void dump(unsigned long val, unsigned char raw){
unsigned long dec = 0;
dec = hex(val);
}
十六进制函数在file2.c.
unsigned long hex(unsigned long hex){
unsigned long result;
...
return result;
}
出于某种原因,dec 变量仅包含 2 个字节的数据。如果我将 hex 函数与 dump 函数放在同一个文件中,它包含所有数据。 dec 变量是局部变量,不在其他任何地方使用。 有人知道为什么会这样吗?
如果我将十六进制函数放在 file1.c 中,它会给出正确的输出。所以十六进制函数中的逻辑是有效的。
这可能是一个链接问题,没有从正确的文件中选取 hex()
。尝试在没有 file2.o
的情况下进行链接,它应该会抱怨缺少函数。