c - typedef 和 struct 的不兼容指针类型警告

标签 c struct typedef

typedef struct {
        int pid;
        struct f_queue_node *next;
}f_queue_node;


typedef struct {
        f_queue_node *front, *rear;
}f_queue;

f_queue *queue;
f_queue_node *node 
queue->rear->next = node;

每当我使用带有前部和后部的 f_queue_node 指针时,我都会收到警告。

queue_f.c:39:21:警告:从不兼容的指针类型 [-Win兼容指针类型] 进行赋值

队列->后->下一个=节点; ^

最佳答案

使用这个:

typedef struct f_queue_node {
        int pid;
        struct f_queue_node *next;
} f_queue_node;

而不是:

typedef struct {
        int pid;
        struct f_queue_node *next;
} f_queue_node;

发生这种情况是因为您 typedef 是一个匿名 struct

另外,你在这里漏掉了分号f_queue_node *node,我不知道你是在在这里发布还是在代码中漏掉了它,只是提醒一下。

关于c - typedef 和 struct 的不兼容指针类型警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52729700/

相关文章:

c - 如何在 C 函数中定义一个数组?

c++ - 创建结构并传递函数

c - 编写一个带有可变数量参数的函数的替换(c 编程)

c++ - Makefile:强制项目在构建时使用动态或静态库

c - 将 malloc 的 C 结构写入文件,并从中读取

c++ - 不初始化指针和将其初始化为空有什么区别?

功能代码

C++ 类依赖 typedef 在类外部声明

c - 是否可以 typedef 不确定大小的多维数组? [C]

c - 仅通过系统调用在汇编中获取 printf?