You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi XE2中函数内常量数组何时创建?单次还是每次调用?

Delphi XE2函数内常量数组的创建时机

在Delphi XE2中,函数内部声明的常量数组只会被初始化一次,而非每次函数调用时重新创建。

Delphi里这类带显式初始化值的静态常量,会在程序启动阶段就完成初始化:

  • 对于值类型常量,直接存储在程序的只读数据段;
  • 对于字符串这类引用类型,程序启动时会完成字符串内容的加载,并初始化数组中每个元素的字符串结构。

无论你调用多少次包含该常量的函数,这个数组都不会被重复创建或初始化,函数每次执行时都是直接使用已经存在的常量数组。

结合你的示例代码:

function Something;
const
  Arr: array[0..100] of string = ('string1', 'string2'...);
begin
end;

这里的Arr数组属于静态常量,数组内的字符串内容在程序启动时就已固定,函数调用时只是直接引用这个已初始化完成的数组,不会产生额外的创建或初始化开销。

需要注意的是,如果是用var声明的变量数组,或是动态数组,才会在每次函数调用时分配内存并初始化——但你这里用const声明的静态数组完全不存在这个问题。

内容的提问来源于stack exchange,提问作者Wolf Poncho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:25:22