0

我正在尝试做这样的事情..我有 3 个头文件

1. coordinates.h

typedef struct {
  float x;
  float y;
  float z;
}coordinates3D;

2.plane.h

#include "coordinates.h"
typedef struct{
    coordinates3D plane;
} plane3D;

3.pointArray.h
#include "plane.h"

plane3D points[] ={
    {1.0f,3.74f,0.2354f},
    {6.823f,9.234f,1.097f},
};

和一个cpp文件

4. main.cpp
#include "pointArray.h"
int main(int argc, char **argv)
{
    std::cout<<points[1].plane.x;
    std::cout<<points[0].plane.y;
}

一切正常,但我收到一条警告消息

警告:'coordinates3D' [-Wmissing-braces] 的初始化器周围缺少大括号

我不知道如何解决这个警告......

4

1 回答 1

3

这是因为嵌套结构。只需在值周围添加几个大括号:

plane3D points[] ={
    { { 1.0f,3.74f,0.2354f } },
    { { 6.823f,9.234f,1.097f } },
};

最外面的是数组,下一个是plane3D结构体,下一个是coordinates3D结构体。

于 2013-10-14T07:08:47.647 回答