Дописывал функционал. Ввёл ещё одно поле, которое определяет тип констант. И работаю с ними поразному - или как с int32 или как с float.
А вот при заполнении такой структуры вываливается ошибка.
Как правильно записать, чтобы компилятор понял, что я от него хочу?
Код
typedef const struct
{
const int32_t *Index; // Указатель на редактируемый параметр/ смещение для каналов
const uint16_t Ch; // 0/ Указатель на канал
const uint8_t fSignEn; // Отображение знака числа
const uint8_t LenDig; // Число цифр в числе (0 - гашение незначащих нулей)
const uint8_t DigAfterDot; // Число цифр после точки (0 - точки нет)
const uint8_t DigType; // Тип результирующего числа (0 - int8, 1 - int16, 2 - int32, 3 - float)
const int32_t min,max; // минимальное и максимальное значение (если <min, то min, если >max, то max)
const uint16_t typeEditing; // возможножность редактирования
void (*savefunc)(void); // Указатель на функцию записи редактируемых параметров
const char* const* NameUnits; // наименование единиц измерения
} DigEditing_t;
{
const int32_t *Index; // Указатель на редактируемый параметр/ смещение для каналов
const uint16_t Ch; // 0/ Указатель на канал
const uint8_t fSignEn; // Отображение знака числа
const uint8_t LenDig; // Число цифр в числе (0 - гашение незначащих нулей)
const uint8_t DigAfterDot; // Число цифр после точки (0 - точки нет)
const uint8_t DigType; // Тип результирующего числа (0 - int8, 1 - int16, 2 - int32, 3 - float)
const int32_t min,max; // минимальное и максимальное значение (если <min, то min, если >max, то max)
const uint16_t typeEditing; // возможножность редактирования
void (*savefunc)(void); // Указатель на функцию записи редактируемых параметров
const char* const* NameUnits; // наименование единиц измерения
} DigEditing_t;
Код
//***************************************************************
// @@ 23155. Диаметр трубопровода 1
DigEditing_t dgeD12_1 = // Меню "Диаметр трубопровода"
{
0, // непрямое
offsetof(PipelineChanal_t,QConfChanal[0])+offsetof(QConfChanal_t,dia_D12), //
0, // неотображать знак
7, 3, // 3 знака, нет запятой
(int32_t)1.0,(int32_t)5.0e3, // min,max
3, // float
PRGEDIT, 0, // Редактировать по паролю, не сохранять (сохранять по выходу из PRG)
&strMm // "мм"
};
// @@ 23155. Диаметр трубопровода 1
DigEditing_t dgeD12_1 = // Меню "Диаметр трубопровода"
{
0, // непрямое
offsetof(PipelineChanal_t,QConfChanal[0])+offsetof(QConfChanal_t,dia_D12), //
0, // неотображать знак
7, 3, // 3 знака, нет запятой
(int32_t)1.0,(int32_t)5.0e3, // min,max
3, // float
PRGEDIT, 0, // Редактировать по паролю, не сохранять (сохранять по выходу из PRG)
&strMm // "мм"
};