Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3934627
  • 博文数量: 93
  • 博客积分: 3189
  • 博客等级: 中校
  • 技术积分: 4229
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-02 13:29
个人简介

出没于杭州和青岛的程序猿一枚,对内核略懂一二

文章分类

全部博文(93)

文章存档

2016年(2)

2015年(3)

2014年(11)

2013年(29)

2012年(16)

2011年(5)

2010年(5)

2009年(22)

分类: C/C++

2012-04-18 15:12:20

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

问题原因如下:

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

阅读(3663) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

瀚海书香2013-07-15 16:21:13

txgc_wm:在此情况下,32位机子上可以正常运行吗?

32 x86位上是没有问题的。因为x86平台下指针占用4个字节,而int也是4个字节,所有没有问题。但是最好写上声明。

回复 | 举报

txgc_wm2013-03-13 23:34:02

在此情况下,32位机子上可以正常运行吗?