正确的位置来定义结构和typedef

Man*_*ete 2 c struct

问题描述

我想知道在C中定义结构以通过其他源文件使用它们的"正确方法".想想以下结构

struct f3{
  double x;
  double y;
  double z;
};
Run Code Online (Sandbox Code Playgroud)

应该在头文件或源文件中声明typedef和结构吗?如果在头文件中,为了符合C软件工程技术,应该在该头文件中包含哪些内容?

到目前为止我做了什么:

我可以将它放入types.h,然后struct f3在其他源文件(#include types.h)中使用,或者它可以放在源文件中type.c.

mel*_*ene 6

如果需要在多个源文件中使用该类型,请将其放在标题中(并让每个源文件都包含它).

如果某个类型是源文件的内部类型,请将其放在那里(并且没有其他人必须知道它).

C还提供了第三种方式(它为您提供抽象类型),称为"不完整类型".为此,您需要struct f3 { ... };输入源文件和struct f3;头文件.这使得其他文件知道该类型存在并且他们可以使用指针struct f3,但是他们无法看到struct f3其成员的内部或访问其成员.

  • 我认为这本来是没有争议的.为什么选择downvote? (3认同)