11 / 7 / 4
Регистрация: 25.03.2019
Сообщений: 140
|
|||||||||||
1 | |||||||||||
Условные операторы29.08.2019, 18:17. Показов 1981. Ответов 32
Метки нет (Все метки)
Что лучше или оптимизированите, вобщем, как писать?
0
|
29.08.2019, 18:17 | |
Ответы с готовыми решениями:
32
С++.Операторы в С++: условные операторы, операторы break и continue Условные операторы и операторы цикла, проверка корректности вводимых данных «Языки и технологии программирования» «Операторы цикла. Условные операторы» Условные операторы.Операторы цикла |
6 / 3 / 3
Регистрация: 15.07.2018
Сообщений: 32
|
|
29.08.2019, 18:35 | 2 |
В общем ввиде разницы нет. Компиляторы они тоже нетупые и умеют оптимизировать программу. Может можно как-то оптимизировать, но это надо смотреть конкретную программу и знать язые ассемблера.
0
|
Вездепух
11689 / 6368 / 1723
Регистрация: 18.10.2014
Сообщений: 16,051
|
|
29.08.2019, 18:41 | 3 |
0
|
6 / 3 / 3
Регистрация: 15.07.2018
Сообщений: 32
|
||||||
29.08.2019, 18:52 | 5 | |||||
Хотя я чуть-чуть ошибся.
Код :
0
|
11 / 7 / 4
Регистрация: 25.03.2019
Сообщений: 140
|
|
29.08.2019, 18:55 [ТС] | 6 |
В какмом смысле "По разному"? Они оба отбирают числа не больше пяти. Что тут разного? Я иммею ввиду, что будет оптимизированнее. Не ужели такой сложный вопрос. Мне вот понятно, что в первом варианте на 1 символ больше, значит это занимает больше памяти, и на низком уровне по идее на обработку первого варивнта уйдёт больше времени. Значит второй вариант лучше, и оптимизирование. Поправьте моё предположение.
0
|
6 / 3 / 3
Регистрация: 15.07.2018
Сообщений: 32
|
|
29.08.2019, 19:26 | 8 |
"Они оба отбирают числа не больше пяти."
Да, они отбирают числа не больше пяти. Но, делают они это чуть-чуть по-разному, но результат будет один и тот же. "Что тут разного?" Чтобы объяснить это по-настоящему, надо знать язык ассемблера. "Не ужели такой сложный вопрос." Вопрос несложные для тех, кто знает язык ассемблера. "Мне вот понятно, что в первом варианте на 1 символ больше, значит это занимает больше памяти, и на низком уровне по идее на обработку первого варивнта уйдёт больше времени." Нет, память будет потрачено столько же сколько и в первом варианте. Дело в том, что на уровне машинных кодов, команды сравнения(сердце данных примеров) чисел будут разные, и второй вариант будет работать чуть-чуть быстрее именно на уровне процессора, но это очень малькая разница во времени особенно с учётом современных процессоров. Добавлено через 2 минуты Согласен, но компиляторы не такие тупые, они стараются оптимизировать код. И ключевая разница данных примеров только в одной машинной команде.Я скомпилировал данные примеры. И диссамблировал код. Это код эквивалентетен двум командам машинного кода. У счётом моего знания языка ассемблера, скажу, что оптимизировать ещё проще нельзя. Я имею ввиду само сравнение, а не то, что в скобка.
0
|
Вездепух
11689 / 6368 / 1723
Регистрация: 18.10.2014
Сообщений: 16,051
|
||||||
29.08.2019, 19:58 | 10 | |||||
Смотрим сюда
Еще раз: вопрос поставлен бессмысленно. Это исчерпывающий ответ на такой вопрос.
0
|
6 / 3 / 3
Регистрация: 15.07.2018
Сообщений: 32
|
|
29.08.2019, 20:03 | 11 |
0
|
Вездепух
11689 / 6368 / 1723
Регистрация: 18.10.2014
Сообщений: 16,051
|
|
29.08.2019, 20:08 | 12 |
Не понял. К чему здесь это? Разумеется, они разные. Ни о какой "одинаковости на уровне машинных кодов" речи и не идет вообще.
0
|
6 / 3 / 3
Регистрация: 15.07.2018
Сообщений: 32
|
|
29.08.2019, 20:12 | 13 |
0
|
Вездепух
11689 / 6368 / 1723
Регистрация: 18.10.2014
Сообщений: 16,051
|
|
29.08.2019, 20:26 | 14 |
Нет, разумеется. Нет смысла обсуждать код вне конкретной платформы, но в то же время практически на всех существующих платформах оба варианта строго идентичны по производительности, даже если они не являются эквивалентными.
Откуда вы такое взяли - совершенно не ясно. Нет.
0
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||||||
29.08.2019, 20:39 | 15 | |||||
TheCalligrapher, разве в случае с double как в Вашем примере второй вариант
0
|
11 / 7 / 4
Регистрация: 25.03.2019
Сообщений: 140
|
|
29.08.2019, 20:43 [ТС] | 16 |
Хватит говорить про double и float. Я имел ввиду именно int.
0
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
29.08.2019, 20:48 | 17 |
Darkfor, Вы же не указали что речь идет именно об int,да и как по мне разницы нету,в первом варианте проверяются числа от 0 до 5,во втором от 0 до 5.999999... .
0
|
6 / 3 / 3
Регистрация: 15.07.2018
Сообщений: 32
|
||||||
29.08.2019, 20:53 | 18 | |||||
На уровне машинных кодов чуть-чуть дольше, но это не заметно.
Добавлено через 3 минуты Если про int, то польза у код
0
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
29.08.2019, 20:56 | 19 |
0
|
6 / 3 / 3
Регистрация: 15.07.2018
Сообщений: 32
|
|||||||||||
29.08.2019, 21:01 | 20 | ||||||||||
Я имел ввиду, что код
0
|
29.08.2019, 21:01 | |
29.08.2019, 21:01 | |
Помогаю со студенческими работами здесь
20
условные операторы Условные операторы с++ Условные операторы Условные операторы Условные операторы Условные операторы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |