zoukankan      html  css  js  c++  java
  • [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;

  • 相关阅读:
    Spark研究笔记7:重要的工厂类UserManager(原创) CVT
    Spark研究笔记9:重要的工厂类PresenceManager(原创) CVT
    Spark研究笔记11:实体类 CVT
    Spark研究笔记5:重要的工厂类NativeManager(原创) CVT
    Spark研究笔记8:重要的工厂类PluginManager(原创) CVT
    Spark研究笔记6:重要的工厂类SessionManager(原创) CVT
    Spark研究笔记12:监听类 CVT
    Spark研究笔记10:重要的工厂类SoundManager(原创) CVT
    声明和定义的区别
    LINQ查询操作符
  • 原文地址:https://www.cnblogs.com/moon25/p/1595739.html
Copyright © 2011-2022 走看看