首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出C中的任意符号

导出C中的任意符号
EN

Stack Overflow用户
提问于 2019-06-10 13:58:20
回答 1查看 68关注 0票数 2

让我们说我有翻译单元1:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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上

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 14:09:07

您是否愿意直接将它们作为原始int公开?

因为如果你不是,你只需加上

代码语言:javascript
复制
int& some_int() { return union1.some_int; }
int& some_data_var2() { return some_data.var2; }

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

编辑:因为在我写完这篇文章之后,您删除了C++标记,所以只需将引用更改为指针即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56527868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档