delphi变体记录问题
PSockAddrIn = ^TSockAddrIn;
TSockAddrIn = packed record
case Integer of
0: (sin_family: u_short;
sin_port: u_short;
sin_addr: TInAddr;
sin_zero: array[0..7] of Char);
1: (sa_family: u_short;
sa_data: array[0..13] of Char)
end;
请问上面代码中case integer of 这句的integer是在哪赋值的? 什么时候是1什么时候是0?
谢谢!
答案:这样解决是有误的, 这只是一种写法,并不是要付0,1给什么,表示的是这个记录有两种变体.
var vpt:TSockAddrIn
你这样的输入 vpt.的时候 会显示如上5个属性(即所有的),怎么用就是你自己的事了
当然上面的写法 与如下写法是一样的:
TSockAddrIn = packed record
case Boolean of
True: (sin_family: u_short;
sin_port: u_short;
sin_addr: TInAddr;
sin_zero: array[0..7] of Char);
False: (sa_family: u_short;
sa_data: array[0..13] of Char)
end;
只是INTEGER 你还可以,2,3,4 写下去 有多种变体.
上一个:delphi ,sql,, 数据库 ,求助~~~~ 急~~~~~
下一个:delphi能实现反射吗?