我在名为 h1.h
的头文件中声明了一个结构,它包含在两个源文件中,c1.c
和 c2.c
.
typedef struct
{
char binary_filename[256];
}programming;
我想为这个结构创建两个变量,device1
和 device2
,然后声明两个指向每个变量的指针,programmingPtr1
和programmingPtr2
.
我希望能够访问每个源文件中实例的成员 binary_filename
。
我对应该在哪里声明这些变量和指针感到困惑。
我应该在 header 中将变量声明为 extern
吗?
我读了this post但它不处理指向变量的指针。
有人可以建议最好的方法吗?
最佳答案
要在多个源文件中使用变量,您需要在所有相关源包含的头文件中声明它们,然后在一个源中定义它们文件。
因此您的 header 将具有:
extern programming device1;
extern programming device2;
extern programming *programmingPtr1;
extern programming *programmingPtr2;
然后在一个源文件中,您将拥有:
programming device1 = { "filename1" };
programming device2 = { "filename2" };
programming *programmingPtr1 = &device1;
programming *programmingPtr2 = &device2;
关于c - 使全局结构指针可用于多个源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45353319/