gpt4 book ai didi

c - 在 C 中导出任意符号

转载 作者:太空狗 更新时间:2023-10-29 12:22:27 24 4
gpt4 key购买 nike

假设我有翻译单元 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 上

最佳答案

您是否执着于将它们直接公开为原始 int

因为如果你不是,你可以添加

int& some_int() { return union1.some_int; }
int& some_data_var2() { return some_data.var2; }

到第一个翻译单元,然后在标题中声明这些函数(或者,如果必须,直接在翻译单元 2 中)。


编辑:由于您在我编写此代码后删除了 C++ 标记,只需将引用更改为指针即可。

关于c - 在 C 中导出任意符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56527868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com