Error: expected primary-expression before ')' token - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Прошу помощи. Сократил код до минимума,чтобы проще было понять суть проблемы.
#include <stdio.h>
#include <limits.h>
#include <float.h>
#include <iostream>
 
typedef union {
short weight;
} SU;
 
typedef struct {
const char *name;
const char *country;
SU amount;
} CENTRE;

int main()
{
setlocale(0, ""); 
CENTRE apples = {"Яблоки" , "Россия", .amount.weight};
}
ругается на .amount.weight error: expected primary-expression before ')' token. Дело в том,что я изучаю эту тему,поэтому вопрос не стоит как "сделай проще и интереснее". немного покопавшись частично удалось решить проблему так:
int main()
{
setlocale(0, ""); // Введенные на русском параметры правильно отобразятся в консоли
SU g;
g.weight=2;
CENTRE apples = {"Яблок" , "Россия", g.weight};
}
только суть в том,что работает только с целыми числами, например g.weight=2.5 уже работать не будет. Возможно назначаемый инициализатор не работает так,как я пишу, как же тогда быть?)

Решение задачи: «Error: expected primary-expression before ')' token»

textual
Листинг программы
SU g;
g.weight=2;
CENTRE apples = {"Яблок" , "Россия", g.weight};

Объяснение кода листинга программы

  1. Объявляется переменная типа SU типа g;
  2. Переменной g присваивается значение веса, равное 2;
  3. Объявляется массив CENTRE типа apples, содержащий три элемента: Яблок, Россия, и значение переменной g (2);
  4. Ошибка в строке с объявлением массива: вместо значения переменной g используется имя переменной без выделения в кавычки, что приводит к ошибке синтаксиса.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5