【问题标题】:C++ anonymous struct unusual definitionC++匿名结构异常定义
【发布时间】:2018-01-05 00:57:53
【问题描述】:

查看一些 .h 脚本,我看到了这个:

struct
{
  int resource;
} SimulRes[SIMULRES];

上面的 SIMULRES 定义为:

#define SIMULRES 50

我认为这是一个匿名结构,但我习惯于看到它是在命名结构中定义的。这在不同的 c++ 编译器中表现如何?方括号内的参数有什么作用? 谢谢。

【问题讨论】:

  • 这有什么奇怪的?您可以像这样简单地使用它:SimulRes[0].resource = 20;
  • 好的,抱歉这个愚蠢的问题。它使用的上下文让我觉得很奇怪,因此未能在此分享该上下文。

标签: c struct anonymous-struct


【解决方案1】:

这个定义创建了一个大小为SIMULRES 的匿名数组struct

因为结构类型是匿名的,所以不能将它传递给函数或创建除已定义实例之外的任何其他实例(或指针)。

【讨论】:

    【解决方案2】:

    这不是 C++ 语法,而是 C 语法。

    这仅仅意味着定义一个数组SimulRes,有50个(SIMULRES)元素,其中元素的类型是一个具有单个项目resource的结构。

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 2020-10-28
      • 2012-02-27
      • 2016-03-30
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      相关资源
      最近更新 更多