如何将结构体成员设为私有?

2023-11-26

我在头文件中定义了一个结构,如下所示:

typedef struct {
    void *data;
} point;

我想阻止其他人直接访问 *data,所以我想我应该在 .c 文件中声明结构并使用类似的东西extern typedef struct point;在头文件中。但这是行不通的。

实现这一目标的最佳方法是什么?


在您的(公共)头文件中:

typedef struct point point;

In your .c file:

struct point
{
    void *data;
};

请注意,您的代码的用户将无法再创建point在堆栈上,因为编译器不知道它有多大。您可能需要提供point_create()分配内存并将其地址返回给调用者的函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将结构体成员设为私有? 的相关文章

  • 为什么相同的代码在同一台计算机上的执行时间可能不同?

    我是 C 编程新手 我编写了代码并希望获得它的运行时 这就是我所做的 每次运行代码时 我都会得到不同的运行时值 这样对吗 或者我的代码有问题吗 int main int argc char argv time t start end sta
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 如何使用 PDO 检查数据库中是否存在行?

    我想要一个条件 当该行根本不存在时执行某些操作 stmt conn gt prepare SELECT FROM table WHERE ID stmt gt bindParam 1 GET id PDO PARAM INT stmt gt
  • 允许用户仅在 Apache Superset 中查看与其相关的数据

    我的数据库中有一些与不同供应商相关的信息 我希望允许每个注册供应商 代表人 查看仅包含与他们相关的数据的切片 仪表板 一种可能的解决方案是为每个供应商创建单独的视图以及每个供应商的单独角色 但如果你有 100 多个供应商 就像我的情况 这感
  • 以编程方式将 CA 信任证书导入现有密钥库文件,而不使用 keytool

    我想创建一个 JAVA 程序 将 cer CA 导入到现有的密钥库文件中 这样最终用户可以更方便地插入CA证书 无需使用CMD和命令中的密钥 JAVA 代码可以在任何地方执行此操作吗 我尝试了一些方法 但仍然无法将证书导入java Cert
  • 如何找到元组列表中的最大值? [复制]

    这个问题在这里已经有答案了 我有一个包含 10 6 元组的列表 如下所示 101 153 255 827 361 961 X Y 我想找到最大值Y在此列表中 但还想了解X这是必然的 我该怎么做呢 operator itemgetter In
  • 在 bash 脚本中使用 virsh 更改 Virbr0 的 XML 文件中的 dhcp IP 范围

    我需要在 bash 脚本中更改 Virbr0 的 XML 配置文件的 dhcp 范围 可以使用命令 virsh net edit default 更改它 但我不知道如何从 bash 脚本完成它 对所提出问题的任何帮助或解释将不胜感激 预先感
  • Win 10 通用应用程序与 Cordova 尝试加载闪存

    我正在使用 Visual Studio 2015 和 Apache Cordova 工具构建跨平台 Cordova 应用程序 因此 我使用 Apache Cordova 工具中的 Blank Cordova 应用程序 带有 TypeScri
  • 输入类型=按钮上的背景颜色:悬停状态在 IE 中保持不变

    我有一个带有背景颜色设置的输入类型 按钮和一个不同的 悬停 请参阅http jsfiddle net hc2Eu 3 在 IE 所有版本 中 当我将鼠标放在按钮上时 移开按钮 然后松开鼠标 背景颜色保留在 hover 设置中 直到您再次将鼠
  • 使用jquery获取具有特定类名的所有选中的复选框

    我知道我可以使用以下方法获取页面上所有选中的复选框 input type checkbox each function var sThisVal this checked this val 但我现在在一个页面上使用它 该页面有一些我不想包含
  • 如何查找对象的大小(包括包含的对象)[重复]

    这个问题在这里已经有答案了 我想估计一个物体所占的大小 为了获得对象的大小我可以使用 为此 我可能会使用Instrumentation getObjectSize myObject 但这会给我一个 浅 尺寸 我想获取对象的大小 包括它引用的
  • ggplot2:如何获取回归线方程、r^2 和 p 值的值?

    我无法弄清楚如何获得我使用函数 geom smooth 绘制的线性回归的回归线方程 r 2 和 p 值 这是我的代码 g lt ggplot data data male aes x mid year y mean tc colour da
  • VB.NET 连接字符串(Web.Config、App.Config)

    连接字符串真的很烦人 我在一个解决方案中同时拥有两个项目 充当表示层的 Web 表单应用程序以及支持它的类库 用于从数据库发送和接收数据 类库项目中的 Employee 类 Friend Class Employee Public Func
  • 如何将 JSON 对象推送到 JSONB 列中的嵌套数组

    我需要以某种方式将 JSON 对象推送到可能存在的 JSON 对象的嵌套数组 请参阅下面的 JSON 片段中的 页面 session id someuuid visitor ui 1 pages datetime 2016 08 13T19
  • 如何在 MathJax 中定义自定义宏

    我正在尝试定义 MathJax 中 LaTeX 文件中使用的自定义宏 可以定义简单的宏 单个参数 没有任何问题 例如 newcommand braket 1 langle 1 rangle as Macros braket langle 1
  • Spring MVC - 包括静态文件/ javascript 、 css

    我已经创建了 MVC 应用程序 我想将js或css文件包含到jsp中 我的静态文件位于 webapp js jquery js WEB INF jsp jsp 我的包含 jquery 的代码是 jquery js gt gt 我无法将 js
  • Android 权限和权限组之间的链接

    我是 Android 开发新手 我正在查看 android 清单权限 有两件事 权限和权限组 我知道该列表位于 http developer android com reference android Manifest permission
  • 具有并发请求的 Python XMLRPC

    我正在寻找一种方法来防止多个主机向 Python XMLRPC 侦听器同时发出命令 侦听器负责运行脚本以在该系统上执行任务 如果多个用户尝试同时发出这些命令 这些任务将会失败 有没有办法可以阻止所有传入请求 直到单个实例完成 我认为 pyt
  • 在 NSString 对象中查找子字符串

    我有一个 NSString 对象 我想通过定位一个单词来从中创建一个子字符串 例如 我的字符串是 狗吃了猫 我希望程序找到单词 ate 并创建一个子字符串 the cat 有人可以帮助我或给我一个例子吗 Thanks Sagiftw NSR
  • 使用 C# 列出回收站中的文件名,而不使用任何外部文件

    我想要一个使用 c 代码检索回收站 在 win 7 上 中的文件名的函数 该框架似乎没有包含任何内容来实现这一目标 目录 Getfiles 不会起作用 是吗 我发现自己有一个使用 windows shell32自动化 的代码 但这需要提供i
  • Play框架表单只有18个参数

    我观察到 当我向 Play Framework Form class 添加超过 18 个参数时 我会收到一个很长 对我来说难以理解 的编译错误 这是有记录的限制吗 我需要在表单帖子中接收多达 29 个参数 我不决定参数的设计和数量 因为我正
  • 如何将结构体成员设为私有?

    我在头文件中定义了一个结构 如下所示 typedef struct void data point 我想阻止其他人直接访问 data 所以我想我应该在 c 文件中声明结构并使用类似的东西extern typedef struct point