首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

将以上C语言代码转化成delphi语言的

2013-01-04 
求助:将以下C语言代码转化成delphi语言的本帖最后由 wuwenzhe 于 2012-12-03 13:26:49 编辑typedef union

求助:将以下C语言代码转化成delphi语言的
本帖最后由 wuwenzhe 于 2012-12-03 13:26:49 编辑


typedef union 
{
    u32 value;
    struct 
    {
        u32 seconds     :6;
        u32 minutes     :6;
        u32 hours       :5;
        u32 days        :15; // from 01/01/2000
    } info;
} t32_date_time;


转化成为

TT32_date_time = packed record
    case Byte of
      0: (Value: DWORD);
      1: (Info: ……);


我不知道在delphi里怎么对位定义类型了?
[解决办法]
delphi没办法这样定义,只能这样

TT32_date_time = packed record
  value : dword;
  data : dword;
end;

然后用函数读写,例如:
function Get_seconds(v : TT32_date_time) : integer;
begin
  result := v.data shr 26;
end;

function Get_minutes(v : TT32_date_time) : integer;
begin
  result := v.data shl 6 shr 20;
end;

procedure Set_minutes(v : TT32_date_time; m : integer);
begin
  v.data := (v.data and $FC0FFFFF) + m shl 20;
end;

热点排行