我一直在寻找这个问题的答案,但是很难找到任何答案,因为这个问题很难用语言表达。
假设我们有定义结构的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>以获取printfscanf等函数的偏差。当然,这适用于结构、类型和其他方面。如果做得正确,甚至可以共享变量。

关于c - 在单独的文件中定义结构时,如何将它们嵌套到另一个结构中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34374186/

10-13 08:48