gpt4 book ai didi

c - 是否可以将 printf 作为参数转换为另一个函数?

转载 作者:行者123 更新时间:2023-12-04 05:16:26 25 4
gpt4 key购买 nike

我正在开发一个链表库,这是我写的一个函数:

/**
* go through a linked list and perform function func for every node of the
* linked list
*
* func is a function pointer to the function you would to apply on the node.
* it should return 0 if it is successful and non-zero value otherwise.
*/
void traverse_list(linkedlist * ll, int (* func)(void * args)){
node * temp;

temp = ll->head;
while( temp != NULL ){
if((* func)(temp->val))
fprintf(stderr,"Error processing value!\n");
temp = temp->next;
}
}

我的问题很简单,我试过类似 travers_list(testlinkedlist,printf)但它无法工作(printf 不打印任何内容),我做错了什么?我能不能做到,如果可以,怎么做?

最佳答案

这是一个可以帮助您的代码片段:

#include <stdio.h>

typedef int (*func)(const char* format, ...);

int main()
{
func a = printf;
a("Hello World\n");
return 0;
}

现在,如果你想在 C 中创建你自己的接受可变数量参数的函数, this page from the GNU manual是一个很好的资源,可以解释可变参数函数的工作原理。

关于c - 是否可以将 printf 作为参数转换为另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203529/

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