gpt4 book ai didi

c - C 中的结构字段别名

转载 作者:行者123 更新时间:2023-11-30 17:58:17 25 4
gpt4 key购买 nike

我的设计包括两层,它们彼此共享一些数据。

下层在结构中保存一些数据:

struct Abc {
int a;
int b;
int c;
};

我需要将 Abc 结构的 b 字段导出到上层,而不授予对其余字段的访问权限。我想在上层创建一个新变量(实际上是一个别名),该变量位于与 b 字段相同的内存位置。这样两个层共享相同的变量。

知道如何在不暴露结构的情况下完成此操作吗?

最佳答案

最简单的方法是:

struct Public
{
int a;
};

struct Private
{
struct Public p;
int b;
int c;
};

并且依赖于 C 功能,指向结构的指针可以转换为该结构的第一个成员的类型,反之亦然。

如果 Public 结构只包含一个成员,您可能可以不用它,但最好是面向 future ,而且您永远不知道什么时候需要更多公共(public)字段。

关于c - C 中的结构字段别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12312973/

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