5 / 5 / 2
Регистрация: 02.10.2013
Сообщений: 130
1

Константная структура с разной длиной массивов

01.11.2023, 16:46. Показов 225. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть следующего типа структурка, которая должна храниться во флеше:
C
1
2
3
4
5
6
7
8
9
10
struct DATA{
    const float A[4];           
    const float B[4];           
    const float C[4];           
    const float D[4];
    const uint16_t ref;
    enum RANGE range;
}data[9] = {[0].A = {0.12,0.45,0.63, 2.45}, [0].B={0.12,0.45,0.63, 2.45} , [0].C={0.12,0.45,0.63, 2.45}, [0].D ={0.12,0.45,0.63, 2.45},[0].ref = 873, [0].range = LOW,
[1].A = {0.12,0.45,0.63, 2.45}, [1].B={0.12,0.45,0.63, 2.45} , [1].C={0.12,0.45,0.63, 2.45}, [1].D ={0.12,0.45,0.63, 2.45},[1].ref = 112, [1].range = HIGH};
//это типа работает
По сути дела это все константы, размерность массива ABCD всегда равны и максимальное количество 10, Но размерность массивов для data[0] и data[1] и могут существенно отличаться( к примеру в нулевом 10 значений, а во всех остальных только по 4). Я бы и рад всем поставить размерность 10 , но тогда размер памяти за 1Кб улетает... Полдня бъюсь как бы сделать инициализацию с указателем по типу:
C
1
2
3
4
const char *str[3]={"первая строка",
"вторая строка",
"третья строка"
}
Но чтобы я не делал, не идут дела.

Добавлено через 32 минуты
И для полного счастья Keil Плюется ошибкой "Error: L6200E: Symbol A multiply defined" хотя структуру в сишном файле объевляю
C
1
2
file.c
struct DATA data[9];
Добавлено через 31 минуту
C ошибкой multiply defined разобрался, перемутил что только можно было.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//file.c
struct DATA data[9] = {[0].A = {0.12,0.45,0.63, 2.45}, [0].B={0.12,0.45,0.63, 2.45} , [0].C={0.12,0.45,0.63, 2.45}, [0].D ={0.12,0.45,0.63, 2.45},[0].ref = 873, [0].range = LOW,
[1].A = {0.12,0.45,0.63, 2.45}, [1].B={0.12,0.45,0.63, 2.45} , [1].C={0.12,0.45,0.63, 2.45}, [1].D ={0.12,0.45,0.63, 2.45},[1].ref = 112, [1].range = HIGH};// и заполняем до победного
 
// file.h
struct DATA{
    const float A[4];           
    const float B[4];           
    const float C[4];           
    const float D[4];
    const uint16_t ref;
    enum RANGE range;
};
extern struct DATA data[9];
Но проблема с разной длинной массива для разной структуры по прежнему не выходит.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2023, 16:46
Ответы с готовыми решениями:

Генератор пароля с разной длиной
Доброго дня. Помогите написать генератор пароля с изменяемой длинной и так чтобы количество цифр...

Функция сравнения строк с разной длиной
Создайте свою версию библиотечной функции strcmp(sl, s2), которая сравнивает две строки и...

сравнение элементов двумерного массива с разной длиной
как сравнить элемент двумерного массива с разной длиной

С\С++ динамическое создание зубчатого массива с разной длиной строк которая заранее не известна
Друзья, помогите найти верное решение, есть интересная задачка Вводится массив строк текста с...

0
01.11.2023, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2023, 16:46
Помогаю со студенческими работами здесь

Имеется кусок ткани длиной М метров. От него последовательно отрезаются куски разной длины
Имеется кусок ткани длиной М метров. От него последовательно отрезаются куски разной длины. Все...

Динамические массивы (удалять нулевые строки/столбцы из матрицы, введённой с разной длиной строк)
Здравствуйте! По заданию программа должна в динамических массивах удалять нулевые строки/столбцы из...

Умножение массивов с разной размерностю
в общем надо найти значение y в y=Pm(x), где Pm(x) полином вида C0x0+c1x1+...CnXn, это значение...

Обработка массивов разной размерности
Найти произведения четных положительных элементов каж- дой строки матрицы A(3,3) и сохранить их в...

Обработка массивов разной размерности
Найти суммы нечетных отрицательных элементов каждой строки матрицы A(3,3) и сохранить их в массиве...

Сравнение массивов разной длины
вот к примеру есть две строчки ( test west ) и ( guest testen must fire) и нужно их сравнить на...

Обработка массивов разной размерности.
Составить программу для решения задач. Найти суммы нечетных отрицательных элементов каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru