Я пытаюсь сделать что-то вроде этого. У меня есть 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;
}
Все работает нормально, но я получаю предупреждение
предупреждение: отсутствующие фигурные скобки вокруг инициализатора для 'координат3D' [-Сдвиги-брекеты]
Я не уверен, как решить это предупреждение...
Это из-за вложенных структур. Просто добавьте пару фигурных скобок вокруг значений:
plane3D points[] ={
{ { 1.0f,3.74f,0.2354f } },
{ { 6.823f,9.234f,1.097f } },
};
Самый внешний для массива, следующая пара для структуры plane3D
, а следующая для структуры coordinates3D
plane3D
.