gpt4 book ai didi

c - 不使用 typedef 重写结构体

转载 作者:行者123 更新时间:2023-11-30 15:02:50 26 4
gpt4 key购买 nike

我有这个结构:

typedef struct std_fifo{
char* name;
struct std_fifo* next;
}std_fifo, *fifo;

以及以下两种方法:

char* remove(fifo* f){
if((*f)==NULL)
return NULL;
char* tmp=(*f)->name;
fifo tmpFifo= *f;
*f=(*f)->next;
free(tmpFifo);
return tmp;
}

fifo add(fifo f,char* new){
if(f==NULL){
fifo newFifo=malloc(sizeof(std_fifo));

newFifo->name=malloc(strlen(new)+1);

strcpy(newFifo->name,new);
newFifo->next=NULL;
return newFifo;
}
f->next=add(f->next,new);
return f;
}

我想重写这个,但没有 typedef fifo*。我的意思是用这个结构:

struct Fifo{
char* name;
struct Fifo* next;
};

我的问题可能看起来很荒谬,但我在 struct 和 typedef 方面有困难,所以如果有人能帮助我,那就太好了。

非常感谢。

编辑:

我做了类似的事情:

char* remove(struct Fifo* fifo){
if(fifo == NULL)
return NULL;
char* name = fifo->name;
fifo = fifo->next;
return name;
}

正确吗?

最佳答案

您必须在任何地方使用struct Fifostruct 标记是其名称的一部分。

例如:

char* remove(struct Fifo* f) {

关于c - 不使用 typedef 重写结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40942578/

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