Pascal、C/C++、VisualBasic数据类型的对照
=============================================================
变量类型 Pascal C/C++ VisualBasic
---------------------------------------------------------------------------------
8位有符号整数 ShortInt char 无
8位无符号整数 Byte BYTE,unsignedshort Byte
16位有符号整数 SmallInt short Short
16位无符号整数 Word unsigned short 无
32位有符号整数 Integer,Longint int,long IntegerLong
32位无符号整数 Cardinal,LongWord unsignedlong 无
64位有符号整数 Int64 _int64 无
4字节浮点数 Single float Single
6字节浮点数 Real48 无 无
8字节浮点数 Double double Double
10字节浮点数 Extnded longdouble 无
64位货币值 currency无 无 Currency
8字节日期/时间 TDateTime 无 Date
16字节 variantVariant,OleVariant VARIANTVariant① Variant(缺省)
TVarData OleVariant①
1字节字符 Char char 无
2字节字符 WideChar WCHAR
固定长度字节的字符串 ShortString 无 无
动态字符串 AnsiString AnsiString① String
以Null结束的字符串 PChar char* 无
以Null结束的宽字符串 PWideChar LPCWSTR 无
动态2字节字符串 WideString WideString① 无
1字节布尔值 Boolean,ByteBool (任何1字节数) 无
2字节布尔值 WordBool (任何2字节数) Boolean
4字节布尔值 BOOL,LongBool BOOL 无
============================================================
①模拟对应的ObjectPasacl类型的BorlandC++Builder类。
注意如果要移植Delphi1.0的16位代码,请记住,无论是Integer还是Cardinal类型都已经从16位扩展到3 2位。更准确地说,在Delphi 2和Delphi 3中,C a r d i n a l被看作是3 1位的无符号整数,
在Delphi 4以后,Cardinal才真正成为32位的无符号整数。