[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;

原文地址:https://www.cnblogs.com/moon25/p/1595739.html