gpt4 book ai didi

c - "parameter has incomplete type"警告

转载 作者:太空狗 更新时间:2023-10-29 17:12:39 25 4
gpt4 key购买 nike

我在 C 文件中有这个:

struct T
{
int foo;
};

C 文件包含一个包含这些行的 h 文件:

typedef struct T T;
void listInsertFirst(T data, int key, LinkedList* ListToInsertTo);

listInsertFirst 函数是我收到警告的函数。我该如何解决?

最佳答案

正如我们在评论中发现的那样,问题在于 struct T 的定义发生在 header 中 T 的定义之后。你真的在这里倒退了。 header 应该定义所有类型和函数原型(prototype),并且您的 C 文件应该使用它们。

您要做的是更改插入函数的签名以接收指向您的数据的指针和数据的大小。然后你可以为数据分配一些内存,复制它并存储它。您不需要特定类型,只需将其声明为 void *

void listInsertFirst(void *data, size_t data_size, int key, LinkedList* ListToInsertTo);

然后调用者会做这样的事情:

struct T { int foo; };
struct T x = { ... };
int someKey = ...;
LinkedList *someList = ...;
listInsertFirst(&x, sizeof x, someKey, someList);

关于c - "parameter has incomplete type"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996795/

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