最近在移植一个32位的程序到64位上,结果由于32位程序的一个不规范,导致出现了问题。希望大家不要再出现类似低级的问题。

问题原因如下:

      A.c中一个函数funcA返回值是char *,在B.c中调用了函数。由于没有声明funcA,虽然能够正确编译通过,并且B也能找到函数funcA,但是因为没有声明,B.c中会默认funcA的返回值是int(4字节),从而导致无法正确获取到A中的char型返回值(8字节)。

10-12 07:46