我在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中,它会给出正确的输出。所以十六进制函数中的逻辑正在工作。
答案 0 :(得分:-2)
这可能是一个链接问题,而不是从正确的文件中选择hex()
。尝试在没有file2.o
的情况下进行链接,并且应该抱怨缺少的功能。