[DELPHI]数据类型
学习语言,最重要的是了解并掌握数据的类型,基础的基本功是往后编写复杂软件的基础。今天把DELPHI中system单元的
系统内置数据类型看了看。主要比较难掌握的是字符和字符串类型。
现在先把所有的类型列出。下次再集中学习字符和字符串的操作。
以下摘自system.pas单元
{ Delphi built-in types for .hpp/.obj support }
{ Most of built-in types are defined in sysmac.h }
{ Pointer types should be mangled by the compiler for constness}
{//--------------------------整数----------------------------------------------}
{8位,1字节类型}
{$EXTERNALSYM Boolean 'bool' } {$OBJTYPENAME Boolean 'Bo'}
{$NODEFINE ShortInt 'ShortInt' } {8位有符号整数} { signed char }
{-EXTERNALSYM ShortInt 'signed char' } {-OBJTYPENAME ShortInt 'Bzc'}
{$NODEFINE Byte 'Byte' } {8位无符号整数} { unsigned char }
{16位,2字节类型}
{$EXTERNALSYM SmallInt 'short' } {16位有符号整数}
{$NODEFINE Word 'Word' } {16位无符号整数} { unsigned short }
{32位,4字节类型}
{$EXTERNALSYM Integer 'int' } {32位有符号整数}
{$EXTERNALSYM Cardinal 'unsigned' } {32位无符号整数}
{64位,8字节类型}
{$EXTERNALSYM Int64 '__int64' } {64位有符号整数}
{$EXTERNALSYM UInt64 'unsigned __int64' } {64位无符号整数}
{$EXTERNALSYM NativeInt 'int' } {}
{$EXTERNALSYM NativeUInt 'unsigned' } {}
{//--------------------------实数----------------------------------------------}
{4字节浮点数}
{$EXTERNALSYM Single 'float' } {$OBJTYPENAME Single 'Bf'}
{6字节浮点数}
{$NODEFINE Real48 } { not supported in C++ }
{8字节浮点数}
{$EXTERNALSYM Double 'double' } {$OBJTYPENAME Double 'Bd'}
{$EXTERNALSYM Real 'double' } {$OBJTYPENAME Real 'Bd'}
{10字节浮点数}
{$NODEFINE Extended 'Extended' } {$OBJTYPENAME Extended 'Bg'} { long double }
{8字节浮点数}
{$NODEFINE Currency 'Currency' } {$OBJTYPENAME Currency 'NCurrency'}
{$NODEFINE Comp 'Comp' } {$OBJTYPENAME Comp 'NComp'}
{//-----------------------------------字符---------------------------------------}
{$NODEFINE ShortString 'ShortString' } {$OBJTYPENAME ShortString 'N%SmallString$iuc$255%'}
{$NODEFINE OpenString 'OpenString' } {$OBJTYPENAME OpenString 'Bxpc'} { char * const }
{$NODEFINE File 'file' } {$OBJTYPENAME File 'Nfile'}
{$NODEFINE Text 'TextFile' } {$OBJTYPENAME Text 'NTextfile'}
{//---------------------------布尔型----------------------------------------------}
{1字节,2字节,4字节}
{$NODEFINE ByteBool 'ByteBool' } {$OBJTYPENAME ByteBool 'Buc'} { unsigned char }
{$NODEFINE WordBool 'WordBool' } {$OBJTYPENAME WordBool 'Bus'} { unsigned short }
{$EXTERNALSYM LongBool 'BOOL' } {$OBJTYPENAME LongBool 'Bi'} { int } { from windef.h }
{//----------------------------指针--------------------------------------------}
{$EXTERNALSYM Pointer 'void *' }
{$NODEFINE PWideChar 'WideChar *'}
{$EXTERNALSYM PAnsiChar 'char *' }
{//----------------------------OLE COM/COM+--------------------------------------------}
{$NODEFINE Variant } { defined in sysvari.h }
{$NODEFINE OleVariant } { defined in sysvari.h }
{//----------------------------别名--------------------------------------------}
{$NODEFINE LongInt } { alias of Integer }
{$NODEFINE LongWord } { alias of Cardinal }
{$NODEFINE TextFile } { alias of Text }
{//-------------------------Unicode---------------------------------------}
{$IFDEF UNICODE}
{$EXTERNALSYM AnsiChar 'char' } {}
{$NODEFINE Char 'WideChar' } {$OBJTYPENAME Char 'Bb'} { wchar_t }
{$NODEFINE string 'UnicodeString' } {$OBJTYPENAME string 'NUnicodeString'} { defined in vcl/ustring.h }
{-NODEFINE string 'String' } {$OBJTYPENAME string 'NUnicodeString'} { defined in vcl/ustring.h }
{$NODEFINE AnsiString } { defined in vcl/dstring.h }
{$NODEFINE WideString } { defined in vcl/wstring.h }
{$NODEFINE PChar } { alias of PWideChar }
{$NODEFINE WideChar } { alias of Char }
{$NODEFINE UnicodeString} { alias of string }
{$ELSE}
{//-------------------------不支持Unicode-------------------------------------}
{$EXTERNALSYM Char 'char' } {$OBJTYPENAME Char 'Bc'}
{$NODEFINE WideChar 'WideChar' } {$OBJTYPENAME WideChar 'Bb'} { wchar_t }
{$NODEFINE string 'AnsiString' } { defined in vcl/dstring.h }
{-NODEFINE string 'String' } { defined in vcl/dstring.h }
{$NODEFINE WideString } { defined in vcl/wstring.h }
{$NODEFINE UnicodeString} { defined in vcl/ustring.h }
{$NODEFINE PChar } { alias of PAnsiChar }
{$NODEFINE AnsiChar } { alias of Char }
{$NODEFINE AnsiString } { alias of string }
{$ENDIF}
{ Useful alias types }
type
Int8 = ShortInt;
Int16 = SmallInt;
Int32 = Integer;
UInt8 = Byte;
UInt16 = Word;
UInt32 = Cardinal;