gpt4 book ai didi

c - C如何调用不带参数的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:09 24 4
gpt4 key购买 nike

我正在通过 building my own Lisp 学习 C我无法弄清楚下一行代码是如何工作的:

lenv_add_builtin(e, "def", builtin_def);

我不明白的是:第三个参数如何调用没有参数的函数(lenv*, lval*)。我猜它们是作为 typedef structs 构建的,但我不确定。这是完整的代码

// function pointer
typedef lval*(*lbuiltin)(lenv*, lval*);

lval* builtin_def(lenv* e, lval* a){
return lval_sexpr();
}

void lenv_add_builtins(lenv* e){
lenv_add_builtin(e, "def", builtin_def); // ???
}

int main(int argc, char** argv){
lenv* e = lenv_new(); // constructor
lenv_add_builtins(e)
return 0;
}

最佳答案

这一行

lenv_add_builtin(e, "def", builtin_def);

不调用 builtin_def。它在调用 lenv_add_builtin 时用作指针(指向函数)。

关于c - C如何调用不带参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745176/

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