реклама на сайте
подробности

 
 
> Поместить константу float на место int32, Чистый си.
SasaVitebsk
сообщение Jun 24 2013, 07:07
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Есть структура. Вся структура константная (размещается во флэши). В ней есть 2 поля int.
Дописывал функционал. Ввёл ещё одно поле, которое определяет тип констант. И работаю с ними поразному - или как с 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;


Код
//***************************************************************
// @@ 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                                    // "мм"
};
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016