我一直在寻找这个问题的答案,但是很难找到任何答案,因为这个问题很难用语言表达。
假设我们有定义结构的file1.h:
//file1.h
struct foo{
int param1;
...
};
稍后,我想将此foo结构合并到另一个文件中定义的通用结构栏中:
//file2.h
#include "file1.h"
struct bar{
struct foo foo1;
int param
...
}
我希望它是相同的结构定义,这样我就不必用相同的参数修改两个结构,而且我也不想使用指针,因为我有一些类似序列化的例程在bar上操作。另外,我希望foo在file1.h中定义,所以每次使用file1的函数时,我不必在其他地方定义它。这可能吗?这是个好主意吗?
(我试图实现模块化,其中file1.c可以单独使用,也可以直接绑定到file2中的代码中,而不必在任何地方重新定义结构)
最佳答案
这是非常有可能的,而且它在任何地方都被使用。
//file2.h
#include "file1.h"
struct bar {
struct foo foo;
int param;
...
};
#include
指令告诉预处理器将file1.h的所有内容转储到file2.h中。这就是你一直在做的。输入
#include <stdio.h>
以获取printf
,scanf
等函数的偏差。当然,这适用于结构、类型和其他方面。如果做得正确,甚至可以共享变量。关于c - 在单独的文件中定义结构时,如何将它们嵌套到另一个结构中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34374186/