Приветствую, форумчане! Прошу помощи в идеях. Не могу перешагнуть следующую задачу. Создан некий класс, задача которого сравнивать два аргумента конечной длины (4 байта). Тип каждого аргумента может задаваться отдельно, например в enum:
Создан некий класс, задача которого сравнивать два аргумента конечной длины (4 байта)
Чёто мне это напоминает, вопрос на тему: как и нафига? Да и как сравнивать тёплое с мягким?
Во первых: всё зависит от компилятора, например билдер вас тупо пошлёт далеко и на долго с таким сравнением ибо компилятор настроен так что приравнивание и сравнение разных типов переменных подразумевается как ошибка.
Во вторых: _cmp_char = 'C', это прокатит, а все остальные это не символьные элементы а числовые, и тут всё зависит от компилятора, некоторые позволяют вот такое _cmp_ushort = 'U', при этом данная переменная будет иметь значение кода данного символа исходя из таблицы ASCII. С флоатом такое точно не прокатит.
В третьих: если компилятор не проигнорировал и переварил сравнение разных типов, то он будет тупо сравнивать числовые значения опять же взятый из таблицы ASCII.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
_cmp_char = 'C', это прокатит, а все остальные это не символьные элементы а числовые
Все эти элементы - вообще элементы enum, а он имеет, если не ошибаюсь, тип int.
А зачем вообще весь этот геморрой? Сделайте оба аргумента float, а где им присваиваются значения других переменных разных типов просто приводите к float.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
но вот как сравнивать числовой и знаковый, по коду ASCII?
Там вроде только числовые перечислены, знаковые и беззнаковые разной разрядности. Можно привести их все к единому типу - тот же float или double и сравнивать
RealHann писал(а):
enum по умолчанию 8 бит
Хм, может я что-то забыл, но вроде бы разрядность enum по умолчанию равна разрядности процессора.
Это и была конкретизация целевой платформы. Читать так: Допустим, на конкретной платформе тип int 32-х битный, можете сказать "навскидку" что выдаст следующий код на экран (Выведет "Да" или "Нет")?
Создан некий класс, задача которого сравнивать два аргумента конечной длины (4 байта).
Исходная задача, впрочем, так и не озвучена - придётся предполагать общеизвестные сюжеты. Положа руку на сердце, при таком подходе вашему С плюсы и незачем - достаточно структур и функций. Попробуйте поискать вдохновение в какой-нибудь из реализаций типа данных variant . Объект класса содержит union поле, со всеми поддерживаемыми типами, и enum поле, указывающее на тип содержащихся данных. Оба приватные, доступ и прочие сравнения - через перегруженные операторы.
_________________ Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR!
это один из виртуальных объектов общего конструктора. выполняет задачу сравнения. чего с чем неизвестно, пока этого не укажет пользователь в конфигураторе. у объекта два "входа" для аргументов, управление типами этими аргументами и "выход" < = >
выполняет задачу сравнения. чего с чем неизвестно, пока этого не укажет пользователь в конфигураторе. у объекта два "входа" для аргументов, управление типами этими аргументами и "выход" < = >
сюр какой-то... просто так сравнение чего-то с чем-то делает оператор сравнения. и если для вашего "сравнивателя" надо указывать, что с чем сравнивать, то чем это отличается от тупой записи оператора А>B?
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
выполняет задачу сравнения. чего с чем неизвестно, пока этого не укажет пользователь в конфигураторе. у объекта два "входа" для аргументов, управление типами этими аргументами и "выход" < = >
сюр какой-то... просто так сравнение чего-то с чем-то делает оператор сравнения. и если для вашего "сравнивателя" надо указывать, что с чем сравнивать, то чем это отличается от тупой записи оператора А>B?
можно, конечно. через уйму if-ов. если у меня 7 возможных типов, то 49 if-ов выглядят тупо. c A>B
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения