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 используется имя переменной без выделения в кавычки, что приводит к ошибке синтаксиса.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д