C 到 D 中的结构数组

Array of struct in C to D

所以我尝试为 D 编程语言制作我自己的 PAWN sdk,我知道已经有 D 的 PAWN sdk 但我只想尝试自己制作它。

当我将此 C 代码转换为 D:

时出现奇怪的问题
struct tagAMX;
typedef cell (*AMX_NATIVE)(struct tagAMX *amx, cell *params);

typedef struct tagAMX_NATIVE_INFO {
const char *name;
AMX_NATIVE func;
} AMX_NATIVE_INFO;

我已经将它转换为 D 代码:

struct AMX;
alias AMX_NATIVE = cell function(AMX* amx, cell* params);

struct AMX_NATIVE_INFO {
    immutable(char)* name;
    AMX_NATIVE func;
}

我写对了吗?如果代码没问题,请忽略它。

主要问题在这里:在C中

AMX_NATIVE_INFO PluginNatives[] =
{
    {"HelloWorld", HelloWorld},
    {0, 0}
};

D 上怎么写?我试过:

AMX_NATIVE_INFO[] NativeInfo =
[
    ["HelloWorld", HelloWorld],
    [0, 0] 
];

它只是给我错误:

function test.HelloWorld (AMX* amx, int* params) is not callable using argument types ()
cannot implicitly convert expression ([0, 0]) of type int[] to AMX_NATIVE_INFO

尝试

AMX_NATIVE_INFO[] NativeInfo =
[
    AMX_NATIVE_INFO("HelloWorld", &HelloWorld),
    AMX_NATIVE_INFO(null, null)
];

AMX_NATIVE_INFO[] NativeInfo =
[
    {"HelloWorld", &HelloWorld},
    {null, null}
];

阅读 this 了解有关结构的更多详细信息。