Инициализация конкретных членов в C - PullRequest
0 голосов
/ 05 октября 2018

Я хочу определить структуру

    #include <stdio.h>
#include <stdint.h>
#include <time.h>
//#include "templog.h"
#define DATE_SIZE      5
 typedef struct {
    int id;
    int year;
    int month;
    int mday;
    float min_temp, max_temp;
    } tempValue_t

, и данные

tempValue_t temps[DATE_SIZE] =
    { 0, { .tm_year = 2015, .tm_mon = 0, .tm_mday = 1 }, 19.26, 20.76 },

, и я получаю сообщение

error field name not in record or union initializer

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Наконец обнаружено, что элементы структуры могут быть инициализированы, даже вложенные структуры могут быть инициализированы с помощью (.).

0 голосов
/ 05 октября 2018

Вы пытаетесь инициализировать свою структуру, используя неправильные имена членов.Чтобы инициализировать первую структуру в вашем массиве, вы можете сделать:

tempValue_t temps[DATE_SIZE] = {
    {0, .year = 2015, .month = 0, .mday = 1, 19.26, 20.76}
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...