tl; dr < /strong>
у меня есть программа, которая «работает», но делает это частично через Непоследовательное поведение < /strong>. Я осознаю, что код с неопозиившим поведением технически может сделать что -нибудь - однако, он должен сделать что -то , и я хотел бы знать, является ли что -то детерминированным. Если я использую один и тот же набор входов и запускаю один и тот же двоичный файл несколько раз, будет ли он вести себя точно так же каждый раз (даже если само «поведение» не определено)? Если это так, есть ли также способ определить, что он будет делать? В дополнение к нескольким устаревшим методам кодирования, которые компилятор сейчас не отклоняется, я отметил ряд неопозиционных поведений в коде, в основном из формы a [i ++] = '\ 0' или if (a-i] == '\ 0') или другие подобные тревожные структуры. Несмотря на это, код в своем текущем состоянии работает. />
Я уже ознакомил себя с основами неопозиционного поведения и прочитал этот ответ, этот ответ и этот ответ, в дополнение к рассмотрению того, что должен сказать стандарт. Я уверен, что смогу переписать код, чтобы выполнить поведение, которое он в настоящее время демонстрирует, предполагая, что я могу определить, как он ведет себя сейчас. Тем не менее, в коде есть достаточно проблем, что использование отладчика, чтобы определить, что происходит в каждом экземпляре, представляет собой нетривиальную задачу, и я не уверен, что могу доверять текущему поведению, чтобы повторить себя, если я перенес бинар в среду отладки. начальное состояние? Я готов декомпилировать двоичные файлы, запустить отладчиков и (если все остальное не удается) просто попробовать оба возможных интерпретации каждого экземпляра, чтобы увидеть, какой один работает, но я хотел бы знать, есть ли способ, если это возможно , даже если поведение фактического кода не определено.
Подробнее здесь: https://stackoverflow.com/questions/797 ... eat-itself
Повторяется ли непонсированное поведение? ⇐ C++
Программы на C++. Форум разработчиков
1759209214
Anonymous
tl; dr < /strong>
у меня есть программа, которая «работает», но делает это частично через Непоследовательное поведение < /strong>. Я осознаю, что код с неопозиившим поведением технически может сделать что -нибудь - однако, он должен сделать что -то , и я хотел бы знать, является ли что -то детерминированным. Если я использую один и тот же набор входов и запускаю один и тот же двоичный файл несколько раз, будет ли он вести себя точно так же каждый раз (даже если само «поведение» не определено)? Если это так, есть ли также способ определить, что он будет делать? В дополнение к нескольким устаревшим методам кодирования, которые компилятор сейчас не отклоняется, я отметил ряд неопозиционных поведений в коде, в основном из формы a [i ++] = '\ 0' или if (a-i] == '\ 0') или другие подобные тревожные структуры. Несмотря на это, код в своем текущем состоянии работает. />
Я уже ознакомил себя с основами неопозиционного поведения и прочитал этот ответ, этот ответ и этот ответ, в дополнение к рассмотрению того, что должен сказать стандарт. Я уверен, что смогу переписать код, чтобы выполнить поведение, которое он в настоящее время демонстрирует, предполагая, что я могу определить, как он ведет себя сейчас. Тем не менее, в коде есть достаточно проблем, что использование отладчика, чтобы определить, что происходит в каждом экземпляре, представляет собой нетривиальную задачу, и я не уверен, что могу доверять текущему поведению, чтобы повторить себя, если я перенес бинар в среду отладки. начальное состояние? Я готов декомпилировать двоичные файлы, запустить отладчиков и (если все остальное не удается) просто попробовать оба возможных интерпретации каждого экземпляра, чтобы увидеть, какой один работает, но я хотел бы знать, есть ли способ, если это возможно , даже если поведение фактического кода не определено.
Подробнее здесь: [url]https://stackoverflow.com/questions/79778709/does-unsequenced-behavior-repeat-itself[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия