【问题标题】:Missing braces for multi-dimensional arrays多维数组缺少大括号
【发布时间】:2015-09-21 14:12:04
【问题描述】:

当我在 Visual Studio 中为 Android 共享库构建项目时,我收到以下警告消息。

warning : suggest braces around initialization of subobject
[-Wmissing-braces]

此消息表示仅使用一对大括号的数组初始化语句。

int myArray[ROW][COL] = { 1, 2, 3, 4, 5, 6, ..., 451, 452, 453 };

我不能用两对写的原因是将来有可能改变ROW和COL的大小。

它工作正常,但我不确定是否可以像这样离开项目,因为我在为仅限 Windows 的应用程序编写代码时从未见过这样的警告消息。

我必须认真对待这件事吗?

【问题讨论】:

    标签: android c++ arrays warnings braces


    【解决方案1】:

    您所拥有的称为通过大括号省略的聚合初始化,您很好,代码符合标准。

    来自cppreference.com

    如果聚合初始化使用带等号的形式 (T a = {args..}),(C++14 前)嵌套初始化器列表周围的大括号可以被省略(省略),在这种情况下,初始化器的数量 必要时使用子句来初始化 相应的子聚合,以及随后的初始化子句 用于初始化对象的以下成员。然而, 如果对象有一个没有任何成员的子聚合(一个空的 结构,或仅包含静态成员的结构),大括号省略不是 允许,并且必须使用空的嵌套列表 {}。

    查看更多详情 herehere

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 2016-08-16
      • 2018-04-10
      • 1970-01-01
      相关资源
      最近更新 更多