结构体定义.h与.c文件的问题

2023-11-19

首先一个问题:

就是结构体声明与定义的问题,不过,感觉现在的我有点弄混了。

那么下面我直接来说明:

最开始的编程习惯,一直是用将结构体的定义(即struct xx{...})这个放在.h文件里,.c文件只放置相关的函数实现。

不过这几天看了一本相关的数据结构的书,发现上述定义是放置在.c文件中的,而.h文件只放struct xx;

所以,我也这样实现了一下,但是出现了一个问题。

那就是,如果我在另外的函数中,引用了函数体内的变量,编译器就会报错,无法通过。

而如果只是引用了这个结构体变量,就不会出现问题。


我想说明的是,这其实就是原来一直所说的,隐藏数据细节的一种方法

如果想实现,访问变量就要用一个函数来实现。

所以,我也一直在想有关面对对象编程到底好在哪。

看抽象这部分。

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

结构体定义.h与.c文件的问题 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • Windows系统常用命令

    Windows常用命令 1 echo 用法 输出一个字符到终端 当加上 gt 后就可输出到文本文件 例如 echo 1 在终端显示一个1 echo 20 gt gt 1 txt 在当前目录下的1 txt文件后面追加一行数据值20 如果没有1
  • AT24C02芯片使用介绍

    AT24C02简介 AT24C02是一个2K位串行CMOS E2PROM 内部含有256个8位字节 有一个16字节页写缓冲器 该器件通过IIC总线接口进行操作 有专门的写保护功能 应用于AT24C02制造过程的先进CMOS技术实质上减少了器
  • 咬牙切齿的按钮

    先看效果 再看代码 查看更多 import url https fonts googleapis com css2 family Roboto wght 500 display swap root sz 9vmin on 4CAF50 of
  • ftp服务器性能对比,ftp服务器软件 性能对比

    ftp服务器软件 性能对比 内容精选 换一换 Java性能分析是鲲鹏性能分析工具的子工具 本章节以openEuler离线环境安装工具 登录 创建Guardian和分析任务 卸载工具为例 指导您快速上手Java性能优分析 由于root用户拥有
  • 机器学习毕设题目有哪些_毕设开源了,126个star,39个fork

    毕设题目 我是去年毕业的 软件工程专业 学校给的毕设题目是实现一个电影院订票系统 如图 嗯 题目一看很简单 其实就是实现一个web版的影票在线订票系统罢了 因此当天接到毕设后的我就大刀阔斧的准备开干了 技术方案选择 先说个大前提 我们学校评
  • c++动态数组(二)之allocator类

    new在灵活性上面一些局限性 以方便它将内存分配和对象构造组合在了一起 delete将内存释放和对象析构组合在一起 当分配一大块内存时 我们通常计划在这块内存上面按需构造对象 在这种情况下 我们希望内存分配和对象构造分离 这意味着我们可以分
  • Python学习之cookies及session用法

    当想利用Python在网页上发表评论的时候 需要一些账号密码登录的信息 这个时候用requests get 请求的话 账号密码全部会显示在网址上 这显然不科学 这个时候需要用post请求 可以这么理解 get是明文显示 post是非明文显示
  • cad等比例缩放快捷键_终于领会CAD缩放(放大与缩小)快捷键

    终于领会CAD缩放 放大与缩小 快捷键 日期 2019 10 09 19 15 01 浏览 9 核心提示 CAD缩放 放大与缩小 快捷键 这个非常简单 鼠标的中键也就是滚轮 双击两下中键图形会适合平面显示全部滚轮前后滚动是缩放 不需要什么快
  • error: “自定义函数XXX” must take exactly one argument

    主要问题在于 类里面的重载的二元运算符时 只需要一个参数 另一个参数由this指针传入 这里如果需要传入两个参数 需要放到类外定义 声明友元 访问私有数据和函数 如下 class myTask public myTask int a int
  • windbg remote stub方式远程调试

    windbg远程调试时 有两种方式 一种为remote session 另一种为remote stub 具体详情请google 我下面说说我在使用remote stub方式时遇到的一些困惑 按照教程 我在target machine启动了s
  • .NET C# 世界日期格式转换为yyyyMMdd

    本文分享了一个按照不同国家的语言生成相应时间格式的案例 有需要做国外网站或者多国语言网站的朋友可以参考一下 本文在引用 C DateTime ToString根据不同语言生成相应的时间格式 基础上做了一个Demo测试 旨在给更多有需要的人能
  • C++设计模式-State状态模式

    State状态模式作用 当一个对象的内在状态改变时允许改变其行为 这个对象看起来像是改变了其类 UML图如下 State类 抽象状态类 定义一个接口以封装与Context的一个特定状态相关的行为 ConcreteState类 具体状态 每一
  • Nodejs-Express框架

    1 认识Web框架 目前在Node中比较流行的Web服务器框架是express koa express早于koa出现 并且在Node社区中迅速流行起来 可以基于express快速 方便的开发自己的Web服务器 并且可以通过一些实用工具和中间
  • HttpResponse响应、render 响应、redirect 响应、JsonResponse 响应

    目录 HttpResponse介绍 常用属性 content 返回的内容 编辑 content type 返回给数据的MIME类型 status code 返回的HTTP响应状态码 render 返回网页 给网页传值 1 指名道姓方式传值
  • Mysql推荐书籍

    一 初级 1 MySQL必知必会 这本书英文原版名是很标题党的 Teach Yourself SQL in 10 Minutes 却是最好的数据库入门书 在Amazon上长期排在数据库销售榜首 建议想快速了解数据库原理和MySQL的新手阅读
  • sklearn机器学习:多项式朴素贝叶斯MultinomialNB

    多项式朴素贝叶斯MultinomialNB 多项式贝叶斯可能是除了高斯之外 最为人所知的贝叶斯算法了 它也是基于原始的贝叶斯 论 但假设概率分布是服从一个简单多项式分布 多项式分布来源于统计学中的多项式实验 这种实验可以具体解释为 实验包括
  • DDL语句--查看表

    查看表结构是指查看数据库中已经存在的表的定义 查看表结构的语句包括DESTRIBE语句和SHOW CREATE TABLE语句 通过这两个语句 可以查看表的字段名 字段的数据类型和完整性约束条件等 这篇博客将详细讲解查看表结构的方法 1 查
  • [Unity3D] Unity3D连接安卓设备调试unity程序

    目录 一 手机开启调试模式 确保adb能检测到手机 目的 确保adb能检测到手机 通过adb devices命令能够呈现如下效果 常见问题 二 unity配置工作 目的 配置unity中Build Settings界面与Player Set
  • FRIDA + Objection 内存漫游,HOOK,anywhere

    前言 VX Ays971124 大家一起吹水加群聊天哦 Friday 是一款很优秀的HOOK工具 不用过多介绍 objection功能强大 命令众多 而且不用写一行代码 便可实现诸如内存搜索 类和模块搜索 方法hook打印参数返回值 调用栈
  • 结构体定义.h与.c文件的问题

    首先一个问题 就是结构体声明与定义的问题 不过 感觉现在的我有点弄混了 那么下面我直接来说明 最开始的编程习惯 一直是用将结构体的定义 即struct xx 这个放在 h文件里 c文件只放置相关的函数实现 不过这几天看了一本相关的数据结构的