C 我应该使用哪种类型的函数?

C 我应该使用哪种类型的函数?,c,function,types,linked-list,C,Function,Types,Linked List,我有一个以wchar\t字符串作为数据的单链表。如果我想添加一个新节点并用文本填充它,我应该使用哪种类型的函数 我尝试使用我的链表类型,但我不确定这是否是一个好方法。可能是那样的吗 typedef struct smth{ wchar_t data; struct smth *next; }smth; smth* add_to_end(wchar_t *text, smth *head){ . . . } 我决定不输入完整的代码,只是尽可能少地显示我在这里所做的事情,并询问它

我有一个以wchar\t字符串作为数据的单链表。如果我想添加一个新节点并用文本填充它,我应该使用哪种类型的函数

我尝试使用我的链表类型,但我不确定这是否是一个好方法。可能是那样的吗

typedef struct smth{
    wchar_t data;
    struct smth *next;
}smth;

smth* add_to_end(wchar_t *text, smth *head){
.
.
.
}

我决定不输入完整的代码,只是尽可能少地显示我在这里所做的事情,并询问它应该是什么样子?

这行代码:
wchar\t data,只能存储一个宽字符

关于您显示的功能
smth*添加到\u端(wchar\u t*文本,smth*头)
: 无需在此函数中传递指向
wchar\u t
的指针,因为在节点定义中,您只希望保留一个宽字符

如果您不想使
指针成为全局指针,那么我认为您需要在每次调用
add_to_end
以及
数据时传递new
。然后,此函数将返回链接列表的更新的
标题
,您可以稍后在代码中的某个位置收集该标题。返回的
smth*
将成为新的头

在函数中,
add_to_end
,您可能需要这样做:

// Assuming prototype as smth* add_to_end(wchar_t text, smth *head)
struct tmp* = malloc(sizeof(struct));
if(tmp == NULL)
{
    printf("\nMemory allocation failed");
    return NULL;
}
tmp->data = text;
tmp->next = head;
head = tmp;
return tmp;

wchar\t数据它不是stringIf“我应该使用哪种类型的函数”你的意思是应该使用哪种类型的参数及其类型以及返回类型,那么这实际上取决于你的函数应该做什么以及它是如何做的。目前形式的问题只是过于宽泛和不明确。请阅读,以及。当然,不要忘记如何创建一个函数来向我们展示。如果您询问函数的返回类型,那么它可能是void、int、smth*或任何东西,具体取决于如何插入以及插入后要返回的值。如果插入成功,该值可以是true或false,也可以是链表的头指针或指向您刚才插入的最后一个节点的指针。@VidorVistrom so void可以,如果我只想在末尾添加一个新节点并用值填充它,对吗?@VidorVistrom,列表为空且
head
为空指针且OP分配给函数内部的
head
时除外。由于OP遗漏了太多细节,所以真的不可能给出一些明确的答案。