A answerhyh Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-20 #1 在Delphi精要52页中,讲枚举类型的存储格式和编译指令$Z有关……也就是说,枚举变量其实就是一个整数, 迷惑,如果枚举对象中有多个有序值,一个整数怎么存得下呢?
E eloveme Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-20 #2 摘自PASCAL精要 枚举类型有多种内部表示法。缺省时,Delphi 用8位表示法;如果有多于256个不同的值,则用16位表示法。还有一种32位表示法,需要与C、C++库兼容时会用到。使用$Z 编译指令可改变缺省设置,请求更多位的表示法。
摘自PASCAL精要 枚举类型有多种内部表示法。缺省时,Delphi 用8位表示法;如果有多于256个不同的值,则用16位表示法。还有一种32位表示法,需要与C、C++库兼容时会用到。使用$Z 编译指令可改变缺省设置,请求更多位的表示法。
B bmsr Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-20 #3 type utype=(u1,u2,u3,u4) .... var i:integer; uvt:utype; .... for uvt:=u1 to u4 do begin i:=integer(uvt); showmessage(inttostr(i)); end;
type utype=(u1,u2,u3,u4) .... var i:integer; uvt:utype; .... for uvt:=u1 to u4 do begin i:=integer(uvt); showmessage(inttostr(i)); end;
N nicai_wgl Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-20 #4 1001001001001,这样存,每个有序值占一位,256 / 8 = 16 BYTE。 明白了吗?
M muhx Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-21 #6 枚举其实就是一个有序数的集合 用整数按位表示节约空间 处理速度快
U ufo Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-21 #7 枚举类型其实就相当于一个整型常量: utype=(u1,u2,u3,u4) 这里 u1=0,u2=1,u3=2,u4=4 一个字节(8位)的表示范围是 0..255,所以多于256个时要用2个字节(16位)表示拉 pascal精要中文电子版,chm格式,欢迎大家继续下载: http://ufo2003.ys168.com 的“杂类”下面
枚举类型其实就相当于一个整型常量: utype=(u1,u2,u3,u4) 这里 u1=0,u2=1,u3=2,u4=4 一个字节(8位)的表示范围是 0..255,所以多于256个时要用2个字节(16位)表示拉 pascal精要中文电子版,chm格式,欢迎大家继续下载: http://ufo2003.ys168.com 的“杂类”下面
W wql Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-21 #8 只有ufo说得对! 其他人不要乱解释,误人! 可以 utype = (u1=168,u2,u3,u4,u5)等方式!
B bmsr Unregistered / Unconfirmed GUEST, unregistred user! 2007-06-21 #9 楼主可能把枚举和集合类型搞混了. 枚举实际上就是整数(数学概念),为了记忆方便,为每个整数(数学概念)取了个名字而已.