struct rpthdr {
    char  id[8];   
    float lat;     
    float lon;    
    float t;     
    int   nlev;   
    int   flag;   
  } hdr;
用TC编译******************************************************************************我查了数据所占的字节数,用下面的结构,再用uedit32打开,16进制都反了,想不通???????type
    rpthdr=record
        id:array[0..7] of char;
        lat,lon,t:single;
        lon:single;
        nlev,flag:integer;
    end;VAR myre:rpthdr;
...
myre.id:='qqq';
myre.lat:=32.00;
myre.lon:=120.00;
myre.t:=0.0;
myre.nlev:=1;
myre.nflag:=1;
...
blockwrite(ff,myre,sizeof(myre));用DELPHI编译两的二进制文件不一样???
WHY??? 帮帮我啊

解决方案 »

  1.   

    struct rpthdr {
        char  id[8];   
        float lat;     
        float lon;    
        float t;     
        int   nlev;   
        int   flag;   
      } hdr;
    用TC编译******************************************************************************我查了数据所占的字节数,用下面的结构,再用uedit32打开,16进制都反了,想不通???????type
        rpthdr=record
            id:array[0..7] of char;
            lat,lon,t:single;
            lon:single;
            nlev,flag:smallint;
        end;VAR myre:rpthdr;
    ...
    myre.id:='qqq';
    myre.lat:=32.00;
    myre.lon:=120.00;
    myre.t:=0.0;
    myre.nlev:=1;
    myre.nflag:=1;
    ...
    blockwrite(ff,myre,sizeof(myre));用DELPHI编译两的二进制文件不一样???
    WHY??? 帮帮我啊
      
      

  2.   

    字节数是一样的,但是16进制排反了,不知是什么原因,有如以C下编译通过的00 00 00 01在DELPHI下就变成01 00 00 00,不知道怎么解决啊?
      

  3.   

    TURBO C是16位编译器,它的int 是2字节.
    而现在DELPHI或其它C/C++编译器已经都是32位,int 4字节..
    你可以使用其它C/C++编译器来试试就知道了..