delphi - 函数指针 - 初始值

标签 delphi pointers function-pointers delphi-xe default-value

我有一个带有某种类型函数指针的公共(public)变量的表单,如下所示:

{...}
interface
  type TExternalFunction = function(var x : TAnotherCustomType): smallint;

{...}
var
  MyExternalFunction : TExternalFunction; 

{...}
implementation

function CreateThisForm():smalint;
begin
  if (Assigned(MyExternalFunction)) then
  begin
    // do something
  end;  
end; 

你看到任何可能的问题吗?

我是否必须将公共(public)函数指针显式初始化为零?
一位同事建议在表单的初始化部分将函数指针初始化为 nil,这有意义吗?

提前致谢

最佳答案

如果不初始化全局变量,它将被初始化为 0(或 nil):
http://docwiki.embarcadero.com/RADStudio/XE7/en/Variables

所以我认为该代码没有问题。但是,如果 MyExternalFunction 指向 dll 中的函数并且您稍后卸载 dll 而不将 MyExternalFunction 设置回 nil,您可能会遇到麻烦。

关于delphi - 函数指针 - 初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26333241/

相关文章:

delphi - “从未使用过的值”更改为 'variable not initialized'

delphi - 从源代码构建 Inno-Setup 时访问新属性/属性?

delphi - 如何获取应用程序中某些按钮单击的命令行参数?

c++ - 交换指针值

c - 如何在结构中存储函数指针?

c++ 指向函数的指针

delphi - 最优Buffer Stream写入流程

c++ - 指针之间的运算符重载

c++ - 如何将指向 char 的指针转换为指向 int 的指针

c++ - c语言中的远函数指针是什么,它的语法是什么?