一段可以在linux下编译并且运行正确的程序,在windows下编译也通不过.为什么?
代码如下:
#include <stdio.h>
typedef unsigned char BYTE;
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