1

我使用 C。我有两个头文件(H1 和 H2),分别具有两个不同的结构(S1 和 S2)。我试图在 H1 中定义一个以 S1 和 S2 作为参数的函数。我没有在头文件之间移动结构的灵活性。

功能(S1,S2);

但是如何将 S2 声明为该函数的第二个参数,因为它在 H2 而不是 H1 中?

4

2 回答 2

3

您只需在 c 文件中包含定义结构的头文件。

#include "H2.h"
于 2013-10-26T15:26:23.677 回答
2

在 H1 中,有:

#ifndef H1_INCLUDED
#define H1_INCLUDED

#include "H2"

extern ... your_function(S1 arg1, S2 arg2);

#endif

实际上,如果只需要结构体指针,H2 中不必包含 H1;你可以简单地写:

#ifndef H1_INCLUDED
#define H1_INCLUDED

struct S2;

extern ... your_function(S1 *arg1, S2 *arg2);

#endif

struct S2;条线说“有一个带有标签的结构类型,S2我不会告诉你更多关于它的事情”。只要头文件中的代码不需要访问结构的成员就足够了,这很可能,只要函数采用指向结构类型的指针而不是结构类型的实际副本。

也可以看看:

于 2013-10-26T15:26:44.993 回答