|
0 / 0 / 0
Регистрация: 03.12.2022
Сообщений: 229
|
|
Перетипирование char c[8] в double11.05.2023, 16:55. Показов 2294. Ответов 39
Метки нет (Все метки)
Есть 8 байтов данных в интерпретации массива чаров. Нужно перетипировать эти данные в интерпретацию double.
0
|
|
| 11.05.2023, 16:55 | |
|
Ответы с готовыми решениями:
39
Делегат Func<Action<char>, bool, double, double> [Error] cannot convert 'double (*)(double)' to 'double' for argument '1' to 'double pow(double, double)' Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double |
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 12.05.2023, 22:11 | ||
|
Скажу больше, я испытываю натурально благоговейный трепет перед людьми, которые каким-то непостижимым для меня образом умудряются помнить все эти совершенно не интуитивные UB. Однако я считаю, что комитетчики (какое слово!) в этих своих "оптимизациях" под видом UB (или UB под видом "оптимизаций") давным-давно перешли все границы здравого смысла и разумности. Я могу понять, когда порядок вычисления аргументов функции не определён и это объявлено UB. Это даже хорошее UB, оно бьёт по рукам любителей многохитрых фельдебоберов. Я могу понять, когда компилятор переменную типа double располагает в памяти так, чтобы к ней обеспечивался максимально эффективный доступ. В этом смысле я даже могу понять логику UB про union. Хоть, конечно, это и выворачивает мозг, который был когда-то давно воспитан на том старом добром славном Си. Но ок, я хотя бы могу найти этому более-менее объяснение: типа union - это про экономию памяти, а не про реинтерпретацию этой памяти. Но когда я говорю компилятору явно "байты начиная с адреса 5298 проинтерпретируй как double", либо "корректно переложи байты с этого адреса в переменную double" (при этом переменную располагай как хочешь) - то я уже решительно не понимаю какое тут может быть UB. Ничто не мешает компилятору вызвать memcpy в этом месте. Да, вероятно это будет менее эффективно, чем переложить из double в double. И что? это повод пороть отсебятину, наплевав на то, что явно написано в коде?? как? почему? на каком основании? Или вот поменять порядок выполнения строк вопреки явно написанному "слева направо, сверху вниз"?! это вот как? почему? Кто и зачем выдумал такую ересь? я решительно не понимаю цели и мотивации. Или полностью выкидывать половину кода функции "т.к. он не влияет на результат". Да откуда ты знаешь, тупой компилятор и тупой его разработчик, что влияет, а что нет?? Причем все это прикрывают каждый раз "полем для оптимизаций". Так давайте выкинем через дну строку в программе - и вообще красота! В 2 раза быстрее и меньше памяти. Полный профит. Порой даже результат не изменится, кстати, так что лишь вопрос подачи. Так что ирония моя, "несерьёзность" отношения - она примерно как отношение к умалишённому. Да, к сожалению приходится в С++ все эти UB держать в голове, как и умалишенный - это объективный факт, который надо учитывать при взаимодействии. Но при этом, разумеется, я буду относиться с долей какой-то иронии что-ли к такому человеку, несерьёзно. Считаю, что многие UB в С++ - порождение натурально умалишенных. Потому и отношение у меня такое.
1
|
||
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||
| 12.05.2023, 22:40 | ||
|
Unspecified - это не UB, не путайте.
0
|
||
|
Вездепух
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,333
|
||
| 12.05.2023, 22:40 | ||
|
0
|
||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||
| 12.05.2023, 22:44 | ||
|
Те же правила алиасинга, которые здесь затронули, существуют с самого первого стандарта. Или вы о чем-то другом, но тогда лучше приведите пример того, в чем именно изменилась "философия".
0
|
||
|
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,297
|
||||||
| 13.05.2023, 12:29 | ||||||
|
Эта беда, лет пять как перед моей рожею. И не каких ub.
1
|
||||||
|
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,297
|
|
| 13.05.2023, 12:31 | |
|
Бильдер...
0
|
|
|
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,297
|
|
| 13.05.2023, 12:31 | |
|
Компрессор звука. До ума так и не довёл, Но работает.
0
|
|
|
"C with Classes"
|
||||||
| 13.05.2023, 16:47 | ||||||
|
DrOffset, аллокатор у Александреску UB?
то есть сам аллокатор не UB, UB его использование.
0
|
||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||
| 13.05.2023, 17:39 | ||
|
0
|
||
|
"C with Classes"
|
||||||||
| 13.05.2023, 18:00 | ||||||||
Добавлено через 4 минуты
0
|
||||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||
| 13.05.2023, 18:01 | ||
|
_stanislav, Почему бесполезен? Аллокатор же просто память выделяет. Дальше в этой памяти нужно будет построить объект. Как он (Александреску) его в ней строит?
В данной же теме шла речь о том, что один объект интерпретируется как другой, т.е. о иной ситуации. Добавлено через 30 секунд
1
|
||
|
"C with Classes"
|
|||||||||||
| 13.05.2023, 18:34 | |||||||||||
|
DrOffset,
так можно значит?
или вообще так:
0
|
|||||||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
|||||||
| 13.05.2023, 18:37 | |||||||
|
_stanislav, да, можно.
Только освобождать память нужно через указатель на char, а не на int. И вообще здесь лучше использовать operator new, а не new expression.
1
|
|||||||
|
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
|
|
| 13.05.2023, 18:40 | |
|
_stanislav, кроме того адрес в
p в этой функции должен удовлетворять требованиям выравнивания для T. Не любой указатель в эту функцию можно будет сунуть.Так нет гарантий, что состояние памяти до создания объекта T в памяти p будет сохранено.
1
|
|
|
"C with Classes"
|
|
| 13.05.2023, 18:44 | |
|
0
|
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||
| 13.05.2023, 18:48 | ||
|
1
|
||
|
Вездепух
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,333
|
||
| 13.05.2023, 19:33 | ||
delete[], а прямой вызов функции operator delete. Ее параметр - именно void *.
1
|
||
|
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,297
|
|
| 13.05.2023, 22:01 | |
|
0
|
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,829
|
||||||
| 13.05.2023, 22:23 | ||||||
|
Наталья8,
1
|
||||||
|
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,297
|
|
| 13.05.2023, 22:48 | |
|
Понял...
0
|
|
| 13.05.2023, 22:48 | |
|
Из Char в Double char в double
Перевод double в char Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|