C 如何从两个不同的头文件定义具有两个结构参数的函数?
我有两个头文件(H1和H2),分别有两个不同的结构(S1和S2)。我试图在H1中定义一个函数,它将S1和S2作为参数。我没有在头文件之间移动结构的灵活性 功能(S1,S2)C 如何从两个不同的头文件定义具有两个结构参数的函数?,c,function,header,C,Function,Header,我有两个头文件(H1和H2),分别有两个不同的结构(S1和S2)。我试图在H1中定义一个函数,它将S1和S2作为参数。我没有在头文件之间移动结构的灵活性 功能(S1,S2) 但是,我如何将S2声明为该函数的第二个参数,因为它在H2中而不是H1中?您只需在c文件中包含定义结构的头文件 #include "H2.h" 您只需在c文件中包含定义结构的头文件 #include "H2.h" 在H1中,有: #ifndef H1_INCLUDED #define H1_INCLUDED #inclu
但是,我如何将S2声明为该函数的第二个参数,因为它在H2中而不是H1中?您只需在c文件中包含定义结构的头文件
#include "H2.h"
您只需在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
structs2代码>行显示“有一个结构类型带有tagS2
,我不想再告诉您更多关于它的信息”。只要头中的代码不需要访问结构的成员(这是很可能的),只要函数使用指向结构类型的指针而不是结构类型的实际副本,这就足够了
另见:
在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
structs2代码>行显示“有一个结构类型带有tagS2
,我不想再告诉您更多关于它的信息”。只要头中的代码不需要访问结构的成员(这是很可能的),只要函数使用指向结构类型的指针而不是结构类型的实际副本,这就足够了
另见:
在H1.h中包含“H2.h”在H1.h中包含“H2.h”