gpt4 book ai didi

function-pointers - 与D等效的函数指针的编译器错误

转载 作者:行者123 更新时间:2023-12-03 08:04:57 26 4
gpt4 key购买 nike

我正在尝试使用D的等效函数指针作为将可选函数指定为struct中的一个字段的一种方式,我正在初始化该数组的一个数组。这在C语言中很简单(除了凌乱的语法),但我陷入了困境。该程序:

struct Foo {
ubyte code;
bool yup;
void function(ubyte[] data, int size) special;
}

void boof(ubyte[] data, int size) {
/*do something*/
}

static immutable Foo[] markdefs = [
{0xF2, true, null},
{0xE4, true, boof},
{0xEE, false, null}
];

void main() {
}

给我这些错误:
funptr.d(17): Error: function funptr.boof (ubyte[] data, int size) is not 
callable using argument types ()
funptr.d(17): Error: expected 2 function arguments, not 0
funptr.d(17): called from here: boof()
funptr.d(17): Error: cannot implicitly convert expression (boof()) of type
void to void function(ubyte[] data, int size)

我在64位Linux计算机上将dmd用于D2。

最佳答案

在第17行,您对boof的使用是不带参数的函数调用(D允许不使用括号)。您要使用运算符引用boof。

关于function-pointers - 与D等效的函数指针的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8189427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com