Error: expected primary-expression before ')' token - C (СИ)
Формулировка задачи:
Всем привет!
Прошу помощи.
Сократил код до минимума,чтобы проще было понять суть проблемы.
ругается на .amount.weight
error: expected primary-expression before ')' token.
Дело в том,что я изучаю эту тему,поэтому вопрос не стоит как "сделай проще и интереснее".
немного покопавшись частично удалось решить проблему так:
только суть в том,что работает только с целыми числами, например g.weight=2.5 уже работать не будет.
Возможно назначаемый инициализатор не работает так,как я пишу, как же тогда быть?)
#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};
}int main()
{
setlocale(0, ""); // Введенные на русском параметры правильно отобразятся в консоли
SU g;
g.weight=2;
CENTRE apples = {"Яблок" , "Россия", g.weight};
}Решение задачи: «Error: expected primary-expression before ')' token»
textual
Листинг программы
SU g;
g.weight=2;
CENTRE apples = {"Яблок" , "Россия", g.weight};
Объяснение кода листинга программы
- Объявляется переменная типа SU типа g;
- Переменной g присваивается значение веса, равное 2;
- Объявляется массив CENTRE типа apples, содержащий три элемента:
Яблок,Россия, и значение переменной g (2); - Ошибка в строке с объявлением массива: вместо значения переменной g используется имя переменной без выделения в кавычки, что приводит к ошибке синтаксиса.