为什么结构名称应该有 typedef?

2023-12-21

我见过源代码总是有一个结构的 typedef 并在各处使用相同的 typedef,而不是直接使用结构名称作为“struct sname”等?

这背后的原因是什么?这样做有什么好处吗?


更容易阅读Box b; than struct boxtype b;

typedef struct _entry{
   char *name;
   int id;
} Entry, *EntryP;

优势:
在上面的typedef, both Entry & EntryP被定义为除了struct _entry.
So, EntryP firstentry可以用来代替struct _entry *firstentry并且在头脑中解析起来更简单一些。

注意:它不像结构名称should be typedef已完成,但显然它更容易阅读。另外,使用Entry * vs EntryP完全取决于用户。

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

为什么结构名称应该有 typedef? 的相关文章

  • .NET 单点登录

    我一直在尝试使用 C 为 NET Web 应用程序实现 WEB SSO 服务提供程序插件 我将使用 shibboleth 身份提供商 我已经使用 OpenSAML 库为 java 应用程序实现了相同的功能 我想知道在 NET 应用程序中使用
  • 是否有可能劫持标准输出

    我正在尝试使用 C 重定向 Windows XP 上已运行进程的标准输出 我知道如果我自己生成进程 我可以做到这一点 但对于这个应用程序 我更喜欢一个 监听器 我可以附加到另一个进程 这在纯 Net 中可能吗 如果不可能 在 Win32 中
  • 如何在特定时间以毫秒精度触发 C# 函数?

    我有两台计算机 它们的时间通过 NTP 同步 确保时间仅相差几毫秒 其中一台计算机将通过 TCP 向另一台计算机发送一条消息 以在两台计算机上的未来指定时间启动某个 c 函数 我的问题是 如何在特定时间以毫秒精度 或更好 触发 C 中的函数
  • 警告 C4800:“int”:强制值为 bool“true”或“false”(性能警告)

    我的代码中有这个问题 bool CBase isNumber return id MID NUMBER bool CBase isVar return id MID VARIABLE bool CBase isSymbol return i
  • 为什么子函数不销毁GtkWindow?

    这是我的代码 void window first void enter window2 GtkWidget w gpointer data void quit GtkWidget w gpointer data void quit int
  • Monotouch全局异常处理

    我在野外发现了一只令人讨厌的虫子 但我无法确定它的具体情况 有没有办法拥有全局 Try Catch 块 或者有办法处理 Monotouch 中未处理的任何异常 我可以包起来吗UIApplication Main args 在 try cat
  • 无法加载程序集问题

    我收到以下错误 无法加载程序集 错误详细信息 System BadImageFormatException 无法加载文件或程序集 文件 或其依赖项之一 该程序集是由比当前加载的运行时更新的运行时构建的 无法加载 该程序集是使用 Net Fr
  • Linq 合并列表

    我的课 public class Foo public int A get set public List
  • 如何自定义 Google 测试失败消息?

    我编写了一个如下所示的 Google 测试 它将一些计算值与 CSV 文件中预期存储的值进行比较 class SampleTest public testing Test public void setupFile const std st
  • .NET 5 EF Core SaveChangesAsync 因错误而挂起

    尽管这个问题有很多结果 但没有一个真正给我明确的答案 每次我尝试通过 AddAsync 和 SaveChangesAsync 方法插入错误数据 例如重复的主键 时 我都会看到以下日志 执行 DbCommand 失败 15 毫秒 我还在 SQ
  • 处理“未找到细胞”。 Excel 中的错误

    我正在使用 Excel VSTO 应用程序并使用以下代码在工作表中查找错误单元格 Excel Range rngTemp Excel Range rngErrorRange Excel Worksheet Sheet1 Excel Work
  • 如何让XmlReader读取C#中的属性?

    我有一个 XML Stream 其中包含以下 XML 内容
  • 使用数据绑定,如何将包含表情符号的文本绑定到标签并使其正确显示?

    我正在编写一个应用程序来连接 WordPress BuddyPress API 该应用程序将允许用户通过 API 相互发送消息 当这些消息包含表情符号时 我很难正确显示它们 以下是 API 返回的消息文本的简短示例 Hi x1f642 ho
  • DataGridView 行背景颜色没有改变

    我想根据加载时的特定条件更改 DGV 行的背景颜色 即使在 Windows 窗体中也是如此 但我看不到任何 DGV 行的颜色有任何变化 谁能告诉我如何解决这个问题 private void frmSecondaryPumps Load ob
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb
  • 当我的进程被终止时到底会发生什么?

    我有一个包含本机代码和托管代码的混合进程 在 Windows Server 2003 上运行 当我从进程资源管理器中终止进程时 它会进入 100 cpu 的状态 并在消失之前保持这种状态一段时间 有时甚至 10 分钟 在此期间我无法 杀死
  • Boost.asio和异步链,unique_ptr?

    我对异步编程不太熟悉 我有一个问题 我的问题如下 给出 boost asio 中 C 11 的 echo server 示例 http www boost org doc libs 1 60 0 doc html boost asio ex
  • 如何在 C 中创建最低有效位设置为 1 的掩码

    这个功能如何运作 最低有效 n 位设置为 1 的掩码 Example n 6 gt 0x2F n 17 gt 0x1FFFF 我根本不明白这些 尤其是 n 6 gt 0x2F 另外 什么是面膜 通常的方法是采取1 并将其左移n位 这会给你类
  • 实体框架代码首次日期字段创建

    我正在使用实体框架代码优先方法来创建我的数据库表 下面的代码 创建一个DATETIME数据库中的列 但我想创建一个DATE柱子 DataType DataType Date DisplayFormatAttribute ApplyForma
  • 如何使用 C# 为 azure devops 变量赋值

    我有 selenium C 测试脚本 可以从浏览器获取令牌 我有两个 azure devops 任务 一个用于执行 selenium 测试 另一个用于执行 API 测试 我想将 selenium 测试获取的令牌传递给 API 测试执行任务

随机推荐

  • 如何在 python 正则表达式中匹配双引号?

    我用这个语句result re match r sentence 匹配sentence balabala 但我总是得到None 为什么 我尝试了很多次 在线正则表达式测试表明它有效 正则表达式中的双引号是分隔字符串而不是正则表达式的一部分
  • 当属性不存在时,Spring @Value 注释不使用默认值

    我尝试在构造函数的参数中使用 Value 注释 如下所示 Autowired public StringEncryptor Value encryptor password String password Value encryptor a
  • 两个数据帧之间的相关性

    类似的问题已经被问过 但我还没有看到清晰的答案 请原谅我再次询问 我有两个数据帧 我只是想要第一个数据帧与第二个数据帧中的每一列的相关性 这是完全符合我想要的功能的代码 df1 pd DataFrame Y np random randn
  • 包含库和二进制文件的软件包?

    我想制作一个 Rust 包 其中包含可重用库 其中实现了大部分程序 以及使用它的可执行文件 假设我没有混淆 Rust 模块系统中的任何语义 我应该做什么Cargo toml文件是什么样的 Tok tmp doug du a 8 Cargo
  • 从 DataFrame 中删除强相关列[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 dict Date 2018 01 01 2018 01 02 2018 01 03 2018 01 04 2018 01 05 Col1 1 2 3 4 5 Col2 1 1 1 2 1
  • 实体框架覆盖默认属性约定以忽略属性

    我正在重写遗留系统以使用实体框架 旧系统的实体的一半属性映射到数据库列 另一半则没有 为了指示必须映射某个属性 该属性用 Field 属性进行修饰 所有其他属性都被忽略 这与 EF 的做法相反 按照惯例 EF 会将所有带有 getter 和
  • 如何判断字符串的第一个字符是否是数字?

    在Java中有没有办法找出字符串的第一个字符是否是数字 一种方法是 string startsWith 1 一直这样做到9点 但这似乎效率很低 Character isDigit string charAt 0 注意这将允许any统一码数字
  • 从 WartRemover 中排除播放路径文件生成的代码

    我在一个游戏项目中使用 WartRemover 我想从 Wartremover 扫描中排除路由文件 从中生成的代码 我添加了以下内容 但它仍然扫描播放routes生成的代码 wartremoverExcluded Seq com xxx c
  • 当存在非静态、更适合的方法时,如何使用动态参数调用静态方法?

    灵感来自这个问题 https stackoverflow com questions 12842712 why does the c sharp compiler not fault code where a static method c
  • 使用 .NET Core SDK 创建筛选的服务总线订阅

    我想从 NET Core 2 1 应用程序内部使用 Azure 服务总线 我熟悉 Nuget 包附带的 SDKMicrosoft Azure ServiceBus我目前正在使用它来编写一个主题并从那里接收消息 我现在想要的是为每个客户创建有
  • WTForms-Javascript:将 onclick 传递到 WTF 字段

    有没有办法将 onclick 传递到 WTForm 字段 我想根据是否选中 WTF 复选框来启用 禁用某个字段 但 WTForms 中的 HTML 不会创建或具有 onclick 参数 我有一个表格 class test Form chec
  • org/eclipse/e4/ui/model/application/ui/MUIElement 类未找到,Java Eclipse Juno

    我正在做一个 CIMTool 项目 用于 WorkbenchWindow 的句柄 代码片段 import org eclipse ui IWorkbenchWindow import org eclipse ui PlatformUI bo
  • Hibernate - 忽略非注释字段,无需添加@Transient

    有没有办法 配置参数 来更改 Hibernate 默认行为以将域类的非注释字段视为持久化 我希望 Hibernate 默认认为非注释字段是瞬态的 并且不能考虑持久性 而不是努力用 Transient 注释所有这些字段 根据 Hibernat
  • 多久提交一次源代码管理更改? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我应该多久提交一次源代码管理更改 在每个小功能之后 还是仅针对大功能 我正在开发一个项目 并且有一个长期功能需要实现 目前 我正在完成每一块工作
  • Valgrind 16 个 freed 块内的 8 个字节

    我正在为课堂上的实验编写代码 这是使用循环链表进行 OOD 设计的练习 这仅意味着我无法访问所使用的一些关键功能 然而 我最困惑的是 虽然我的驱动程序模仿了教授写的驱动程序 但我仍然在标题中收到 mchk 错误 这是它引用的代码 int n
  • 如何在滚动视图内滚动编辑文本

    我有一个滚动视图 里面有一个编辑文本多行 我想滚动编辑文本以查看下部内容 但无法完成
  • 按比例调整 Cocoa 窗口大小

    我想知道如何限制应用程序窗口仅按比例调整大小 我希望它保持比例 以免照片 视频失真 您可能会在您的应用程序委托中执行此操作 在标准项目模板中 该对象具有对应用程序主窗口的引用 void awakeFromNib Keep the aspec
  • 我拿一个div在一个canvas元素如下
  • 未声明框架文档的字符编码

    我在开发我的网站时在 FF 中收到此警告 我找不到有关它以及如何解决此问题的任何真实信息 the character encoding of a framed document was not declared The document m
  • 为什么结构名称应该有 typedef?

    我见过源代码总是有一个结构的 typedef 并在各处使用相同的 typedef 而不是直接使用结构名称作为 struct sname 等 这背后的原因是什么 这样做有什么好处吗 更容易阅读Box b than struct boxtype