I'd like to know how much bytes a
32-bit integer
ASCII character (char in C++?)
Pointer (4 bytes?)
Short
Float
Takes up in Delphi, and if it is generally the same in most languages
另外,上面提到的数据类型是否具有恒定的大小?我的意思是整数0,4,123和32231都是相同的大小?
32位整数总是四个字节,因为1个字节= 8位.
An Integer是带符号的32位整数,a Cardinal是无符号的32位整数.因此,无论它们代表什么值,它们总是占用四个字节.(事实上,简单类型确实具有固定宽度是一个非常重要的事实 - 低级编程实际上取决于此!它甚至是计算机工作原理的基石部分.)
较小的整数类型是Smallint(16位有符号),Word(16位无符号)和Byte(8位无符号).较大的整数类型是Int64(64位有符号)和UInt64(64位无符号).
CharAnsiChar在Delphi 2009之前是一个1字节; 现在它是一个2字节WideChar.
Pointer总是4个字节,因为Delphi目前只创建32位应用程序.当它支持64位应用程序时,Pointer将变为8个字节.
Delphi中有三种常见的浮点类型.这些是Single,Double(= Real)和Extended.它们分别占用4,8和10个字节.
要研究给定类型的大小,例如Short,只需尝试
ShowMessage(IntToStr(SizeOf(Short)))
Run Code Online (Sandbox Code Playgroud)
参考: