使用extern struct或extern指针指向struct的最佳实践?

时间:2013-04-07 23:18:56

标签: c pointers struct extern

假设我有3个文件:file1.c,file2.c和globals.h。 file1.c和file2.c都包含globals.h。 file1.c包含file2.c需要使用的结构。将struct本身设置为extern或创建指向struct的指针并在globals.h中创建指针extern更好吗?

1 个答案:

答案 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"

/* ... */