如何使用两个不同的头文件中的两个struct参数定义一个函数?

时间:2013-10-26 15:22:55

标签: c function header

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

功能(S1,S2);

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

2 个答案:

答案 0 :(得分:3)

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

#include "H2.h"

答案 1 :(得分: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的结构类型,我不打算告诉你更多关于它的信息”。只要头文件中的代码不需要访问结构的成员就足够了,这很有可能,并且只要函数获取指向结构类型的指针而不是结构类型的实际副本。

另见: