一尘不染

如何使用另一个源文件中定义的结构?

linux

我将Linux用作编程平台,将C语言用作编程语言。

我的问题是,我在主源文件(main.c)中定义了一个结构:

struct test_st
{
   int state;
   int status;
};

所以我希望这个结构可以在我的其他源文件(例如othersrc。)中使用。是否可以在另一个源文件中使用此结构而不将其放在标头中?


阅读 526

收藏
2020-06-03

共1个答案

一尘不染

您可以使用指向它的指针,othersrc.c而不必包括它:

othersrc.c:

struct foo
{
  struct test_st *p;
};

但是否则,您需要以某种方式包括结构定义。一个好的方法是在main.h中定义它,并将其包含在两个.c文件中。

main.h:

struct test_st
{
   int state;
   int status;
};

main.c:

#include "main.h"

othersrc.c:

#include "main.h"

当然,您可能会找到比main.h更好的名称。

2020-06-03