在 C++ 变量声明中使用 struct 关键字

2023-11-29

我有一种感觉,这可能与 C 语法有关,但我是从 C++ 开始我的编程生活的,所以我不确定。

基本上我见过这个:

struct tm t;
memset( &t, 0, sizeof(struct tm) );

我对这种语法有点困惑,因为通常我希望上面的内容看起来像这样:

tm t;
memset( &t, 0, sizeof(tm) );

两者有什么区别,为什么使用前者?

Update

结构tm我指的是wchar.h,定义如下:

struct tm {
        int tm_sec;     /* seconds after the minute - [0,59] */
        int tm_min;     /* minutes after the hour - [0,59] */
        int tm_hour;    /* hours since midnight - [0,23] */
        int tm_mday;    /* day of the month - [1,31] */
        int tm_mon;     /* months since January - [0,11] */
        int tm_year;    /* years since 1900 */
        int tm_wday;    /* days since Sunday - [0,6] */
        int tm_yday;    /* days since January 1 - [0,365] */
        int tm_isdst;   /* daylight savings time flag */
        };

简单的答案是struct存在关键字来限制标识符的查找tm只到用户定义的类类型。它可能是为了与 C 兼容而保留的,在需要的地方。

与其他人所说的相反,不存在这样的事情自动类型定义,C 和 C++ 在如何管理用户定义类型的标识符方面也没有区别。唯一的区别在于查找。

您可以阅读更多内容here

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

在 C++ 变量声明中使用 struct 关键字 的相关文章

随机推荐

  • eclipse插件代码在指定位置创建IProject

    IProgressMonitor progressMonitor new NullProgressMonitor IWorkspaceRoot root ResourcesPlugin getWorkspace getRoot IProje
  • JButton 的不透明度/半透明度?

    我有如下简单的 GUI 代码 我想在其中制作JButton一个是半透明的 这样后面的图像JButton是可见的 package dealORnodeal import java awt BorderLayout import java aw
  • 如何选择并删除每第三列

    我有一组数据 其中每第三列都是相同的 我只想保留第一列 其他相同的列必须删除 起初我尝试了这段代码 但它删除了错误的列 因为在每个循环中其他列的位置都被改变了 Sub DeleteMultipleColumns Dim i As Integ
  • Rails 模型字段未更新到数据库

    使用型号 class Car lt ActiveRecord Base attr accessor model edition attr accessible model edition has many wheels end class
  • Google Actions 返回抱歉,尚不支持电源控制

    我通过扩展助手来实现我的设备 如中所述指示 我可以看到我的设备注册了以下特征 googlesamples assistant devicetool 列表 model Device Model Id assistant 19etc Proje
  • .NET:如何获取空对象的类型?

    我有一个带有 out 参数的方法 尝试进行类型转换 基本上 public void GetParameterValue out object destination object paramVal I want to return this
  • Android 地图、标记和内存泄漏

    我正在阅读 android 文档http developer android com reference com google android gms maps MapFragment html我看到了这句话 从 GoogleMap 获取的
  • R Shiny 中的反应式数据框

    我有一个由多个类别和月份组成的数据框 每行是参与者的 1 次交互 因此我想通过热图按月份和不同类别显示他们全年的交互计数 总共 490 万行 这意味着全年总共有 490 万次交互 我尝试使用输入来指示列名称 并尝试被动地更改 X 轴 但它似
  • 如何组合相等的序列元素(函数式编程)?

    我想编写一个函数 它接受序列 并返回具有相同元素分组的序列 如 gt 我使用的是序列 而不是列表 但有些功能是相似的 我正在考虑使用的一些功能是map reduce tabulate filter append等 Reduce 接受一个关联
  • 使用 Berkshelf 解决递归 git Cookbook 依赖关系

    TL 博士版本 Berkshelf 是否能够解决基于 Git 的说明书中的递归依赖关系 如果可以 如何解决 我尝试使用 Berkshelf 管理我的 Chef 食谱依赖项 这些食谱都存储在内部 Git 存储库中 依赖关系如下 env doc
  • 在mac 10.12上构建aosp

    我曾经在我的Mac上构建aosp 最近我升级了 mac os Mac Sierra 10 12 我在构建项目时收到此错误消息 找不到支持的 mac sdk 10 8 10 9 10 10 10 11 mac sdk 版本已升级到 10 12
  • 如何使用 NSString 的 sizeWithFont 和 drawInRect 来确定要绘制的字符串大小

    我正在使用 iOS 中的 CGContext 绘制多个图像 页面 我在我的应用程序中广泛使用了 sizeWithFont 和 drawInRect 组合 我需要做的是将一大块文本拆分到多个页面上 我可以调整它的大小并确定它是否需要另一页 但
  • Object.keys() 复杂性?

    有人知道 ECMAScript5 的 Object keys 在常见实现中的时间复杂度吗 是吗O n for n钥匙 假设采用哈希实现 时间与哈希表的大小成正比吗 我正在寻找语言实现者的保证或一些现实世界的基准测试 看来是O n 在 V8
  • 将小三角形水平居中在 div 底部并按响应和比例调整大小

    使用 CSS 我试图实现以下响应屏幕大小调整的效果 用于响应式设计 具体来说 我希望随着浏览器窗口变小 三角形也按比例变小 我将其模拟为 PNG 不是 HTML CSS 到目前为止 我使用此代码作为基础 其中 2 个 div 堆叠在一起 C
  • linq 查询表单

    如何将以下代码转换为 linq 或谓词表达式 List
  • RoboSpice 使用 OrmLite 持久保存 JSON 数组

    我正在将 RoboSpice 与 Spring for Android 结合使用 并希望使用 OrmLite 持久保存对象的 JSON 数组 GSON 用于 JSON 编组 使用默认缓存 一切都按预期工作 但OrmLite似乎不喜欢对象数组
  • 'multiprocessing.resource_sharer' 中的 AttributeError 'DupFd' | Python 多处理 + 线程

    我正在尝试在多个人之间进行通信threading Thread s 执行 I O 密集型任务和多个multiprocessing Process es 执行 CPU 密集型任务 每当一个线程为一个进程找到工作时 它就会被放到一个进程上mul
  • 即使设置了操作的优先级和依赖关系,操作队列也不会按顺序执行

    我正在进行三个 api 调用 并希望 API1 应首先执行 完成后应执行 API2 然后执行 API3 我为此使用了操作队列 并添加了对操作的依赖性 我也尝试设置优先级 但没有按顺序调用 api 帮我看看如何正确制作 代码是这样的 let
  • 在组内计算值变化之后和之前的值,为每个唯一的转变生成新变量

    我正在努力计算组内唯一值的出现次数 id 我正在看TF When TF我想从那一点开始向前和向后计算变化 这个计数应该存储在一个新变量中PM 以便PM 同时保留正负每个独特的转变 in TF 根据我收集的信息 我需要使用rle 但我有点卡住
  • 在 C++ 变量声明中使用 struct 关键字

    我有一种感觉 这可能与 C 语法有关 但我是从 C 开始我的编程生活的 所以我不确定 基本上我见过这个 struct tm t memset t 0 sizeof struct tm 我对这种语法有点困惑 因为通常我希望上面的内容看起来像这