|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|||||||||||
Пропуск строк кода08.02.2013, 01:00. Показов 3959. Ответов 20
Метки нет (Все метки)
При построении проекта с шаблоном Release при выполнении программы пропускаются некоторые строки кода. Включена опция "Оптимизация - максимальная скорость", при её выключении все нормально. Но эта опция мне необходима...
Добавлено через 5 минут Похоже, что if тоже вообще не выполняется... При
0
|
|||||||||||
| 08.02.2013, 01:00 | |
|
Ответы с готовыми решениями:
20
Работа с OLE сервер Excel: пропуск строк Пропуск строк кода на C |
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||
| 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
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||||||||||||||||||||
| 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
|
|||||||||||||||||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|
| 08.02.2013, 19:22 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|
| 08.02.2013, 19:26 [ТС] | |
|
В предыдущем - достаточный листинг.
Какой вам еще нужен? Весь - 2500 строчек, 1500 из которых - мои.
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||
| 08.02.2013, 19:27 | |||
|
а если учесть что это регистр который используется при возвращении значений из функций то явного присвоения ты и не увидишь Функция в релизе правильно работает? если да не бери в голову, компилятор может даже поменять порядок выполнения Добавлено через 21 секунду
0
|
|||
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|||||||||||
| 08.02.2013, 19:35 [ТС] | |||||||||||
0
|
|||||||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||||||||
| 08.02.2013, 20:10 | ||||||||
|
ну вот она твоя строчка
Добавлено через 18 минут Не по теме: -=ЮрА=-, а умножение то на 1.0 выкинуто:)
0
|
||||||||
|
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 19
|
|||||||||||
| 08.02.2013, 20:18 [ТС] | |||||||||||
|
Насчет "как видишь" - могу лишь верить. В ассемблере ни бум-бум.
Но что тогда с этим делать? Получается даже не такое, в итоге:
Что же с этим делать? На данный момент сделал
0
|
|||||||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||||||||||||||||||||||||||||||||||||||||||
| 08.02.2013, 20:41 | |||||||||||||||||||||||||||||||||||||||||||
![]() разве что умножение выкинул просто он объединил
а если делать печать то тогда она вылезет из сопроцессора и ты её видишь еще раз приведу тебе попытаюсь подробно описать вызвать функцию rand
напрямую из регистра в сопроцессор записать нельзя используем память
на самом деле здесь срабатывает обратное условие если if(chance == propability) return 0;
0
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| 08.02.2013, 22:09 | ||||||||||||||||||||||||||
Altaire, приведи нормальный(подразумевает ПОЛНЫЙ) код функции
Добавлено через 2 минуты
0
|
||||||||||||||||||||||||||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
||||
| 08.02.2013, 23:34 | ||||
|
но смотря на этот кусок заполнение стековых переменных константой характерно для debug вот кусок листинга ТС оно нужно было только для того чтобы заставить работать сопроцессор (приведение к double) здесь ты прав ![]() а вообще все эти тонкости зависят и от компилятора и от режима компиляции
0
|
||||
| 08.02.2013, 23:34 | |
|
Помогаю со студенческими работами здесь
20
Пропуск строк кода при пошаговом выполнении программы Пропуск пустых строк Пропуск строк при выполнении Пропуск чтения пустых строк в файле Пропуск строк при выборке из таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|