让我们说我有翻译单元1:
struct SomeData {
int var1;
int var2;
int var3;
} some_data;
union Union1 {
unsigned char buf[1024];
struct {
unsigned char _pad0[8];
int some_int;
};
} union1;在另一部,翻译单元2:
extern int some_int;
extern int some_data_var2;我想让翻译单元2中的符号some_int与翻译单元1中的union1.some_int共享相同的内存。同样,我希望翻译单元2中的some_data_var2与翻译单元2中的some_data.var2共享相同的内存。
这是在Linux上
发布于 2019-06-10 14:09:07
您是否愿意直接将它们作为原始int公开?
因为如果你不是,你只需加上
int& some_int() { return union1.some_int; }
int& some_data_var2() { return some_data.var2; }到第一个翻译单元,然后在标题中声明这些函数(或者,如果必须的话,直接在翻译单元2中)。
编辑:因为在我写完这篇文章之后,您删除了C++标记,所以只需将引用更改为指针即可。
https://stackoverflow.com/questions/56527868
复制相似问题