gpt4 book ai didi

c - 尝试了解 .h 文件或其 .c 实现文件中声明结构之间的差异

转载 作者:行者123 更新时间:2023-11-30 17:28:06 25 4
gpt4 key购买 nike

我不明白如何应用老师告诉我的内容。

我的老师告诉我的是,如果您想在 .h 文件中声明一个结构,那么您将将该结构设为公共(public),但如果您在 .c 实现文件中声明该结构,则将其设为私有(private)。但是,如果我在 .c 文件中声明它,然后尝试将两者放在一个 main.c 文件中,我总是会收到错误,如果我将该声明移回 .h 文件,那么一切都会正常。我得到的错误始终是在 .c 文件中声明的前向声明错误

那么,我可以将结构声明(通过指针)放入我的 .c 文件中吗?我该如何处理呢?

太长了;我不明白如何使用指针与 .h 文件一起在 .c 实现文件中声明结构。

编辑:

这是 .h 文件

typedef char *ListItemP;
typedef struct List *ListP;

//some functions

这是 .c 文件

struct List
{
int foo;
ListItemP P;
};

//implementations of .h functions

但是,每当我按照上面的输入操作时,我总是会遇到错误,而且我就是不明白为什么要挽救我的生命。

最佳答案

您没有提供任何代码,所以我无法谈论您的具体情况。

将某些内容单独放入 .h 或 .c 文件中不会影响其公共(public)或私有(private)性。但是,通过将其放入一个 .h 文件中,将 #included 放入 2 个不同的 .c 文件中(我假设您就是这样做的)意味着这些文件将使用相同的定义。

关于c - 尝试了解 .h 文件或其 .c 实现文件中声明结构之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26131897/

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