当我在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应用程序编写代码时,我从未见过这样的警告消息。
我是否必须认真对待?
答案 0 :(得分:5)
你所拥有的是通过大括号缩写称为聚合初始化,你完全没问题,代码符合标准。
如果聚合初始化使用带有等号的表单(T a = {args ..}),(直到C ++ 14)嵌套初始化程序列表周围的大括号可以省略(省略),在这种情况下,尽可能多的初始化程序 必要时使用的子句用于初始化每个成员或元素 相应的子聚合,以及后续的初始化子句 用于初始化对象的以下成员。然而, 如果对象有一个没有任何成员的子聚合(一个空的 结构,或只保存静态成员的结构),支持elision不是 允许,并且必须使用空的嵌套列表{}。