3

假设我有 3 个文件:file1.c、file2.c 和 globals.h。file1.c 和 file2.c 都包含 globals.h。file1.c 包含 file2.c 需要使用的结构。将结构本身设为外部或创建指向该结构的指针并在 globals.h 中将该指针设为外部是否更好?

4

1 回答 1

4

如果我理解正确并且您的“结构”应该是一个全局对象(这是一个有问题的设计选择),那么我会这样做:

富.h:

typedef struct foo_struct
{
    /* ... */
} foo;

extern foo the_foo;

foo.c: [如果你喜欢并且有意义,你可以将它合并到 file1.c 中。]

#include "foo.h"

foo the_foo = { /* ... */ };

file1.cfile2.c

#include "foo.h"
#include "global.h"

/* ... */
于 2013-04-07T23:23:39.427 回答