我使用 C。我有两个头文件(H1 和 H2),分别具有两个不同的结构(S1 和 S2)。我试图在 H1 中定义一个以 S1 和 S2 作为参数的函数。我没有在头文件之间移动结构的灵活性。
功能(S1,S2);
但是如何将 S2 声明为该函数的第二个参数,因为它在 H2 而不是 H1 中?
您只需在 c 文件中包含定义结构的头文件。
#include "H2.h"
在 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
我不会告诉你更多关于它的事情”。只要头文件中的代码不需要访问结构的成员就足够了,这很可能,只要函数采用指向结构类型的指针而不是结构类型的实际副本。
也可以看看: