读书人

一段可以在linux下编译并且运行正确的

发布时间: 2012-02-23 22:01:36 作者: rapoo

一段可以在linux下编译并且运行正确的程序,在windows下编译也通不过.为什么?
代码如下:

#include <stdio.h>

typedef unsigned charBYTE;

BYTE* GetCurDate()
{
BYTE *TempDate;
*(TempDate) = 0x31;
*(TempDate+1) = 0x32;
*(TempDate+2) = 0x33;
return TempDate;
}

main()
{
printf( "windows 32bit platform point test function!\n ");
BYTE bCurStore=0;
BYTE *Date = &bCurStore;
BYTE *bCurDate;
bCurDate = GetCurDate();
*(bCurDate+3)=0x0;
printf( "bCurDate = %s\n ",bCurDate);
}


linux环境:fc4 gcc 4.0
windows环境:windows xp ,vc 6.0


[解决办法]
#include <stdio.h>

typedef unsigned char BYTE;

BYTE* GetCurDate(BYTE* Temp)
{
BYTE *TempDate=Temp;
*(TempDate) = 0x31;
*(TempDate+1) = 0x32;
*(TempDate+2) = 0x33;
return TempDate;
}

int main()
{
printf( "windows 32bit platform point test function!\n ");
BYTE bCurStore=0;
BYTE *Date = &bCurStore;
BYTE *bCurDate;
bCurDate = GetCurDate(Date);
*(bCurDate+3)=0x0;
printf( "bCurDate = %s\n ",bCurDate);

return 0;
}

除了这里有个错误(笔误?)typedef unsigned charBYTE;
编译可以通过
xp2+vc6.0

读书人网 >UNIXLINUX

热点推荐