对比C语言 struct 的使用
type
pud=^userdata_struct; //用^定义指针类型,record定义前被使用的唯一情况,与C不同
userdata_copy_fn=function(para:pud):pud; //定义函数类型
userdata_free_fn=procedure(para:pud);
userdata_struct=record
copy_fn:userdata_copy_fn; //record的成员可以是函数类型,与C同
free_fn:userdata_free_fn;
userdata_len:UInt16;
data:array [0..15] of ansichar;
end;
ud=userdata_struct;
function setlast(k:pud):pud; //按定义的函数类型,定义一个具体函数,
begin //不能使用函数类型名,与C不同
showmessage(inttostr(k.userdata_len));
end;
procedure kankan;
var
mm:ud;
nn:pud;
begin
nn:=@mm;
nn.userdata_len:=1;
nn.copy_fn:=setlast;
nn.copy_fn(nn);
end;
在pascal环境下学习record
最新推荐文章于 2025-03-18 14:22:58 发布