中易网

delphi中变体记录如何使用?

答案:1  悬赏:20  
解决时间 2021-01-04 01:49
delphi中变体记录如何使用?
最佳答案
变体记录顾名思意记录是可变的,为记录体提供了灵活行
hostent=record
h_name:PChar;
h_aliases:^PChar;
h_addrtype:Smallint;
h_length:Smallint;
case Byte of
0:(h_addr_list:^PChar);
1:(h_addr:^PChar);
end;

上述记录体中如果记录体中的h_length=0 那么记录体记录h_addr_list就可以使用; 如果h_length=1那么h_addr可以使用; h_addr_list,h_addr只能对一个进行赋值和读取 而且是根据h_length的值,因为它们用的是一个内存地址

--------------------------------------------------------------------------------
若记录是由一部分固定不变和另一部分变化部分是随固定部分中的某个数据
项的具体取值而定的数据项所组成的称为记录变体。带记录变体的记录类型定义有以下形式:
type
<类型标识符>=record <域名1>:<类型1>;
<域名2>:<类型2>;
…… <域名n-1>:<类型n-1>;
case <标志域>:<类型n> of
<常量表1>:<域表1>;
<常量表2>:<域表2>;
…… <常量表m>:<域表m>;
end;
可变部分中的标识域可有可无
下面是几种结构体的定义
type
TMyRcord=reocord
A:integer;
B:integer;
case C:integer of
1:(D:string[20]);
2: (E:Dword);
end;
这个结构体中的值域实际有5个;你可以对A,B,C,D,E,分别赋值;
如果赋值的顺序是这样 myrecord.d='dfd';myrecord.E:=2;那么d的值将被
E 覆盖掉,因为他们用的是同一地址;C可以任意付给整型值赋值;它只是提供给一个
标识作用;
TMr=record
case integer of
1(A:integer);
2(B:sring[1]);
end;
这个结构体没有标识符只有类型;这里的integer只是表明这是一个可变记录
它的作用和下面的记录体是一样的
TMr2=record
case char of 'a':(a:integer);
'b':(b:string[10];
end;
char和integer只是一个标识作用
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
平地的意思是什么?平地的释义是什么啊?
怎么看蛮王的w给对方减没减攻击力求大神
芦溪社区居委会地址在哪,我要去那里办事
取名张什么帝好听,那个字要火旁的谢谢
誹謗的意思是什么?誹謗的释义是什么啊?
蒙娜丽莎,我好想对你说
活褥蛇的意思是什么啊?请解释下!
主題的意思是什么?主題的释义是什么啊?
佐记三文鱼(柠溪店)怎么去啊,有知道地址的么
东方雪铁龙的小艳腰上的肉多不多
屏息的意思是什么?屏息的释义是什么啊?
花丑的意思是什么?花丑的释义是什么啊?
刘金文这个名字怎么样
黑暗之魂1黑龙怎么打
哪儿有生化危机2高清在线?
推荐资讯
夫襓的意思是什么?夫襓的释义是什么啊?
学租的意思是什么啊?请解释下!
尹楼村委会地址在什么地方,想过去办事
pkpm中按荷载属性确定构件折减系数勾选吗
在网上听说,澳斯曼卫浴的节水马桶很不错的,
谁有剑侠2超白金账号!有没有可以申请的网址
集服的意思是什么?集服的释义是什么啊?
请问有没有海底两万里1997年版的电影,发一下
影帝的意思是什么?影帝的释义是什么啊?
谄语的意思是什么?谄语的释义是什么啊?
分期乐多给我发个一个商品
方舄的意思是什么?方舄的释义是什么啊?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?