让我们说我有翻译单元1:
Object.defineProperty(this, 'index', {
get() { return index; },
set() {
throw new AssertionError("can't set attribute");
}
});
另外,翻译单元2:
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;
与翻译单元1中的some_int
共享相同的内存。同样,我希望翻译中的union1.some_int
单元2与翻译单元2中的some_data_var2
共享相同的内存。我该怎么做?
这是在Linux上
答案 0 :(得分:1)
您是否愿意直接将它们作为原始int
公开?
因为不是,您可以添加
int& some_int() { return union1.some_int; }
int& some_data_var2() { return some_data.var2; }
到第一个翻译单元,然后在标头中声明这些函数(或者,如果需要,直接在翻译单元2中声明这些函数)。
编辑:由于您在我写完之后删除了C ++标记 ,因此只需更改对指针的引用即可。