Инициализация массива структур (снова вопрос по синтаксису)

Тема в разделе "Микроконтроллеры AVR", создана пользователем AlexVS, 23 июл 2018.

  1. AlexVS

    AlexVS Гик

    Здравствуйте.
    Помогите , пожалуйста с синтаксисом.
    Есть переменные
    Код (C++):
    DeviceAddress Adr1 = {0x28, 0x13, 0x95, 0x8B, 0x06, 0x00, 0x00, 0xE5};
    float Temperature1 = 0;

    DeviceAddress Adr2 = {0x28, 0xD7, 0x17, 0x8B, 0x06, 0x00, 0x00, 0xEE};
    float Temperature2 = 0;
     
    Хочу их сгруппировать в структуру, а структуру в массив
    Код (C++):
    struct dallasData
    {
      DeviceAddress address;
      float Temperature;
    };

    dallasData dsData[2];
    Не пойму как проинициализировать адреса для каждого элемента, при объявлении массива dsData[]?
     
  2. DIYMan

    DIYMan Guest

    Дык DeviceAddress - это просто
    Код (C++):
    typedef uint8_t DeviceAddress[8];
    Соответственно, инициализировать как обычно:

    Код (C++):
    dallasData dsData[2] = {
    { {1,2,3,4,5,6,7,8}, 22.0 },
    { {1,2,3,4,5,6,7,8}, 33.0 }
    };
    если навскидку не напорол в синтаксисе.
     
    Mitrandir и AlexVS нравится это.
  3. AlexVS

    AlexVS Гик

    Блин, кажись понял :)
    Код (C++):
    dallasData dsData[2] =
    {
      {
        {0x28, 0x13, 0x95, 0x8B, 0x06, 0x00, 0x00, 0xE5},0
      },
      {
        {0x28, 0xD7, 0x17, 0x8B, 0x06, 0x00, 0x00, 0xEE},0
      }
    };
    Изначально запутался в скобках, вот и не получалось.