假设我有3个文件:file1.c,file2.c和globals.h。 file1.c和file2.c都包含globals.h。 file1.c包含file2.c需要使用的结构。将struct本身设置为extern或创建指向struct的指针并在globals.h中创建指针extern更好吗?
答案 0 :(得分:4)
如果我理解正确并且你的“结构”应该是一个全局对象(这是一个有问题的设计选择),那么我会这样做:
<强> foo.h中:强>
typedef struct foo_struct
{
/* ... */
} foo;
extern foo the_foo;
foo.c: [如果您愿意,如果有意义,可以将其合并到file1.c中。]
#include "foo.h"
foo the_foo = { /* ... */ };
file1.c 和 file2.c :
#include "foo.h"
#include "global.h"
/* ... */