缺少多维数组的大括号

时间:2015-09-21 14:12:05

标签: android c++ arrays warnings braces

当我在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应用程序编写代码时,我从未见过这样的警告消息。

我是否必须认真对待?

1 个答案:

答案 0 :(得分:5)

你所拥有的是通过大括号缩写称为聚合初始化,你完全没问题,代码符合标准。

来自cppreference.com

  

如果聚合初始化使用带有等号的表单(T a   = {args ..}),(直到C ++ 14)嵌套初始化程序列表周围的大括号可以省略(省略),在这种情况下,尽可能多的初始化程序   必要时使用的子句用于初始化每个成员或元素   相应的子聚合,以及后续的初始化子句   用于初始化对象的以下成员。然而,   如果对象有一个没有任何成员的子聚合(一个空的   结构,或只保存静态成员的结构),支持elision不是   允许,并且必须使用空的嵌套列表{}。

查看更多详情herehere