Error unknown type name для объединия - C (СИ)

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

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

Здравствуйте! Подскажите, пожалуйста, как исправить код. Компилятор выдает ошибку: error: unknown type name 'u', в строке "u ldc";
#include <stdio.h>
 
union u
{
    long double ldb;
    double db;
    float fl;
    char data_f[sizeof(float)];
    char data_d[sizeof(double)];
    char data_l[sizeof(long double)];
};
 
int main()
{
    u ldc;
    unsigned char c;
    int i, j;
    char type = ' ';
    while(type != 'f' && type != 'd' && type != 'l')
        type = getc(stdin);
    char key = type;
    while(type != ' ')
        type = getc(stdin);
    if(key == 'l')
    {
        type = getc(stdin);
        while(type != ' ')
            type = getc(stdin);
    }
    float f = 0;
    double d = 0;
    long double ld = 0;
    switch (key)
    {
    case 'f':
        scanf("%f", &f);
        ldc.fl = f;
        for (i = sizeof(ldc) - 5; i >= 0; --i)
        {
            c = ldc.data_f[i];
            for (j = 0; j < 8; ++j)
            {
                if (c & (128 >> j))
                    printf("1");
                else
                    printf("0");
                if (j == 3)
                    printf(" ");
            }
            printf(" ");
        }
        break;
    case 'd':
        scanf("%lf", &d);
        ldc.db = d;
        for (i = sizeof(ldc) - 1; i >= 0; --i)
        {
            c = ldc.data_d[i];
            for (j = 0; j < 8; ++j)
            {
                if (c & (128 >> j))
                    printf("1");
                else
                    printf("0");
                if (j == 3)
                    printf(" ");
            }
            printf(" ");
        }
        break;
    case 'l':
        scanf("%Lf", &ld);
        ldc.ldb = ld;
        for (i = sizeof(ldc) - 1; i >= 0; --i)
        {
            c = ldc.data_l[i];
            for (j = 0; j < 8; ++j)
            {
                if (c & (128 >> j))
                    printf("1");
                else
                    printf("0");
                if (j == 3)
                    printf(" ");
            }
            printf(" ");
        }
        break;
    }
    return 0;
}

Решение задачи: «Error unknown type name для объединия»

textual
Листинг программы
struct some
{
  int one;
};
 
...
struct some yes;

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

  1. Структура данных some объявлена с полем типа int под именем one.
  2. Переменная yes типа struct some объявлена.

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


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

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

7   голосов , оценка 4 из 5
Похожие ответы