|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|||||||||||
Пропуск строк кода08.02.2013, 01:00. Показов 3913. Ответов 20
Метки нет (Все метки)
При построении проекта с шаблоном Release при выполнении программы пропускаются некоторые строки кода. Включена опция "Оптимизация - максимальная скорость", при её выключении все нормально. Но эта опция мне необходима...
Добавлено через 5 минут Похоже, что if тоже вообще не выполняется... При
0
|
|||||||||||
| 08.02.2013, 01:00 | |
|
Ответы с готовыми решениями:
20
Работа с OLE сервер Excel: пропуск строк Пропуск строк кода на C |
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
||
| 08.02.2013, 09:05 | ||
|
а потом как ты проверил что не выполняется ?? точки останова ставил?? так они не пройдут поскольку код изменился делай отладочную печать например в каждую ветку запихай printf (MessageBox если работаешь с окнами)
0
|
||
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|
| 08.02.2013, 14:38 [ТС] | |
|
Функция запускается. Построчное выполнение.
Debug режим - не вариант. Мне требуется скорость для основного выполнения программы. Разница - в восемь раз. Как он решает какие строчки удалять? Они ведь должны выполнятся - инициализируемые переменные используются...
0
|
|
|
|
||
| 08.02.2013, 15:47 | ||
|
Altaire, предположу что ты решил что
0
|
||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
||||||||||||||||||||
| 08.02.2013, 16:27 | ||||||||||||||||||||
rand() * 1.0 приводится к int и
и все это действие
и вообще принято приводить полный листинг может у тебя ветвление выбрасывается вместо того чтобы привести код программы и ассемблерный листинг что он скомпилировал
0
|
||||||||||||||||||||
| 08.02.2013, 17:01 | |||||||||||||
|
Не по теме:
0
|
|||||||||||||
| 08.02.2013, 17:23 | |
|
0
|
|
|
|
|
| 08.02.2013, 17:35 | |
|
Altaire, посомтри как меняет картину srand и какие значения чисел мы генерируем(они все в диапазоне 0 - 1(!), это пишу на случай если вероятность не как коэффициент 0-1 а как процент используешь. Запомни при / RAND_MAX чисел свыше 1 не получишь, их можно получить если запрашивать остаток от целочисленного деления т.е % RAND_MAX)
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|||||||||||||||||||||
| 08.02.2013, 19:16 [ТС] | |||||||||||||||||||||
|
srand() у меня вызывается, но только далеко от этой функции. Просто когда-то он у меня вызывался перед каждым куском кода с рандомом, но как раз рандомности это не обеспечивало - время не менялось от srand() к srand() и последовательность случайных чисел получалась та же самая. Вот я и решил запускать srand() лишь в одном месте проекта.
rand() возвращает случайное целое число от нуля до RAND_MAX (библиотечная константа). Мне нужно именно вещественное от 0 до 1. Я привожу возвращаемое значение к double ( * 1.0) и делю на максимум. Аномалия, оказывается, еще более странная... При добавлении отладочной печати переменная берет и появляется. Через дизассеблер виден тот же код, но без строчки
При добавлении печати типа
Полный код функции
При этом
0
|
|||||||||||||||||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|
| 08.02.2013, 19:22 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|
| 08.02.2013, 19:26 [ТС] | |
|
В предыдущем - достаточный листинг.
Какой вам еще нужен? Весь - 2500 строчек, 1500 из которых - мои.
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||
| 08.02.2013, 19:27 | |||
|
а если учесть что это регистр который используется при возвращении значений из функций то явного присвоения ты и не увидишь Функция в релизе правильно работает? если да не бери в голову, компилятор может даже поменять порядок выполнения Добавлено через 21 секунду
0
|
|||
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|||||||||||
| 08.02.2013, 19:35 [ТС] | |||||||||||
0
|
|||||||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
||||||||
| 08.02.2013, 20:10 | ||||||||
|
ну вот она твоя строчка
Добавлено через 18 минут Не по теме: -=ЮрА=-, а умножение то на 1.0 выкинуто:)
0
|
||||||||
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|||||||||||
| 08.02.2013, 20:18 [ТС] | |||||||||||
|
Насчет "как видишь" - могу лишь верить. В ассемблере ни бум-бум.
Но что тогда с этим делать? Получается даже не такое, в итоге:
Что же с этим делать? На данный момент сделал
0
|
|||||||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||||||||||||||||||||||||||||||||||||||||||
| 08.02.2013, 20:41 | |||||||||||||||||||||||||||||||||||||||||||
![]() разве что умножение выкинул просто он объединил
а если делать печать то тогда она вылезет из сопроцессора и ты её видишь еще раз приведу тебе попытаюсь подробно описать вызвать функцию rand
напрямую из регистра в сопроцессор записать нельзя используем память
на самом деле здесь срабатывает обратное условие если if(chance == propability) return 0;
0
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| 08.02.2013, 22:09 | ||||||||||||||||||||||||||
Altaire, приведи нормальный(подразумевает ПОЛНЫЙ) код функции
Добавлено через 2 минуты
0
|
||||||||||||||||||||||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
||||
| 08.02.2013, 23:34 | ||||
|
но смотря на этот кусок заполнение стековых переменных константой характерно для debug вот кусок листинга ТС оно нужно было только для того чтобы заставить работать сопроцессор (приведение к double) здесь ты прав ![]() а вообще все эти тонкости зависят и от компилятора и от режима компиляции
0
|
||||
| 08.02.2013, 23:34 | |
|
Помогаю со студенческими работами здесь
20
Пропуск строк кода при пошаговом выполнении программы Пропуск пустых строк Пропуск строк при выполнении Пропуск чтения пустых строк в файле Пропуск строк при выборке из таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|