gpt4 book ai didi

编译器: "error: dereferencing pointer to incomplete type" in thread application

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

这是我的第一篇出版物,我现在正在学习 C 编程,所以我不是专家。

我在编译此行时遇到了错误(在线程中):

...
struct task_par *tp;
tp = (struct task_par *)arg;
a = tp->arg;
...

结构task_par是:

typedef struct
{
int arg;
int period;
int priority;
} task_par;

注意“arg”是线程的参数

“a”的正确类型是什么?因为我已经尝试了所有类型,但它仍然是“错误”,那么还有什么问题吗?

最佳答案

您没有定义 struct task_par使用您所显示的代码。您定义的是 typedef (一种新类型)名为task_par这是某个匿名结构类型的别名。

你的变量定义应该简单地说task_par *tp;在这种情况下。如果您更喜欢使用 struct task_par ,按照您现在的方式,您应该将结构定义更改为:

struct task_par
{ // ...
}

或者您可以将两者结合起来:

typedef struct task_par
{ // ...
} task_par_t;

然后您可以将变量定义为 struct task_par *tp;或如task_par_t *tp; .

底线是结构名称和 typedef 名称位于两个不同的命名空间中。你甚至可以做typedef struct foo { /* */ } foo; ,但有些人认为这种形式不好,因为可能会造成困惑......

关于编译器: "error: dereferencing pointer to incomplete type" in thread application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767462/

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