静态数组占用的"实际"内存大小是多少?

Ast*_*oth 5 delphi

这个问题与我之前的问题有关系,动态数组占用的"实际"内存大小是多少?

例:

var
  AText: array [0..6] of AnsiChar;
Run Code Online (Sandbox Code Playgroud)

AText在内存中占用的实际大小是多少?真的是7个字节吗?

Mar*_*ort 1

我想是这样。也许 D2010+ 添加了一些对 RTTI 记录的引用。

然后还有对齐,下一个变量/字段可能不会在该变量/字段之后直接开始,从而留下一些松弛字节。(通常向上舍入到 2 的某个幂,例如 16)

请注意,局部变量和全局变量、类 var 等的对齐方式可能不同。各个段都可以有不同的对齐规则,如果它是字段/类变量,则它可能仍然不同。