gpt4 book ai didi

c - 结构 : what should go a header and what should go in the source?

转载 作者:太空宇宙 更新时间:2023-11-04 08:20:44 26 4
gpt4 key购买 nike

如果我有一个源文件 mystruct.c 和相应的头文件,在每个文件中定义它的正确方法是什么?

假设我有一个结构:

typedef struct my_struct {
int a;
} MyStruct;

是否应该这样放在页眉中?或者它应该看起来更像这样:

源文件:

struct my_struct {
int a;
};

头文件:

typedef struct my_struct MyStruct;

我对枚举和 union 有同样的问题。

我基本上是在寻找定义这些东西的标准方法,以便它们可以在许多其他文件中使用,而不必担心重新定义错误。

最佳答案

在 .c 文件中定义结构的内容并仅声明结构存在于 header 中意味着您需要提供一个函数来创建结构,例如

rc = my_struct_create(&s);

它的优点是您可以更改结构的内容而无需重新编译依赖代码 - 这是因为结构是不透明的,创建它的唯一方法是使用您的函数,并且是访问任何成员的唯一方法该结构将通过您定义的函数。

我个人建议对库代码采用这种方法。否则,这实际上取决于您要实现的目标。

关于c - 结构 : what should go a header and what should go in the source?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534154/

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