在delphi中为分支声明块级变量
发布时间:2020-12-15 09:44:42 所属栏目:大数据 来源:网络整理
导读:在Delphi prism中,我们可以声明仅在特殊场合需要的变量. 例如:在棱镜中 If acondition then begin var a :Integer; end; a := 3; //this line will produce error. because a will be created only when the condition is true 这里’a’不能与3分配,因为它
在Delphi prism中,我们可以声明仅在特殊场合需要的变量.
例如:在棱镜中 If acondition then begin var a :Integer; end; a := 3; //this line will produce error. because a will be created only when the condition is true 这里’a’不能与3分配,因为它嵌套在分支内. 如果减少内存使用不是问题我们有什么缺点(或者我们没有) 解决方法
你的问题的前提是错误的.您假设在允许块级变量的语言中,当控制进入或离开这些变量的范围时,程序会为这些变量分配和释放内存.因此,例如,您认为当声音为真时,程序会调整堆栈,以便在变量进入该块时为变量腾出空间.但你错了.
编译器计算所有声明的变量和临时变量所需的最大空间,然后在进入函数时保留那么多空间.分配该空间就像调整堆栈指针一样简单;所需时间通常与预留的空间量无关.最重要的是,你的想法实际上不会节省任何空间. 块级变量的真正优势在于它们的范围有限. 如果您确实需要某些变量仅在一个代码分支中有效,那么请将该分支分解为单独的函数并将变量放在那里. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |