Delphi中布尔类型辨析

时间:2010-02-27 17:59:53  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:现做简单辨析供大家参考。      一、从资源占用的角度进行比较  一项Boolean 类型的数据占用 1字节的内存;   一项ByteBool类型的数据占用 1字节的内存;   一项WordBool类型的数据占用 2字节的内存;   一项LongBool类型的数据占用 4字节的内存。   如果开发者在进行程序设计时将构...
  正文:Delphi中预定义的布尔类型有四种:Boolean ,ByteBool,wordBool,LongBool。其中,Boolean 类型是首选布尔类型,其余三种是为其它编程语言和Windows 环境提供兼容性支持。这些布尔类型在使用上大同小异,但如果混淆使用将可能会有意外结果。

  现做简单辨析供大家参考。

  

  一、从资源占用的角度进行比较

  一项Boolean 类型的数据占用 1字节的内存

  一项ByteBool类型的数据占用 1字节的内存;

  一项WordBool类型的数据占用 2字节的内存;

  一项LongBool类型的数据占用 4字节的内存。

  如果开发者在进行程序设计时将构造一种含有布尔数据类型的结构类型,那么在资源占用方面将有所考虑。尽管这些数据类型之间是可以相互赋值的,但某些特殊情况下是有区别的。首先看下面的语句:

  type

   ByteBoolFile = file of ByteBool;

   LongBoolFile = file of LongBool;

  这里,如果在这两中类型文件中存储相同数量的布尔值,其文件大小是不同的。而对同一物理文件按照这两种类型文件分别读取数据,其结果更是相去甚远。

  下面是比较ByteBool和LongBool的一段程序,得到的文件 test1.bin和 test2.bin的文件尺寸分别为 4字节和16字节。

  procedure CompareByteBoolWithLongBool;

  const

   FName1 = 'c: est1.bin';

   FName2 = 'c: est2.bin';

  type

   ByteBoolFile = file of ByteBool;

   LongBoolFile = file of LongBool;

  var

   BF: ByteBoolFile;

   LF: LongBoolFile;

   B: Boolean;

  begin

   B := False;

   AssignFile(BF, FName1);

   Rewrite(BF);

   Write(BF, B, B, B, B);

   CloseFile(BF);

   AssignFile(LF, FName2);

   Rewrite(LF);

   Write(LF, B, B, B, B);

   CloseFile(LF);

  end;

  有兴趣的朋友可以在此基础上再比较一下读取数据的区别,你会有更奇特的发现。

"Delphi中布尔类型辨析"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/12939.html


关键字:

关于《Delphi中布尔类型辨析》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td