|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.08.2015, 16:57 | #1 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
i:=i+1 или Inc(i)
Здравствуйте.
Может немного глупый вопрос, но что быстрее работает i:=i+1 или Inc(i)? Я так понимаю, что корректнее писать Inc(i), но что быстрее? Заранее благодарен.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
06.08.2015, 17:06 | #2 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,289
|
Написал данный код в RAD XE6 и посмотрел дизассемблер:
Цитата:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
06.08.2015, 17:15 | #3 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
i+1 может не оптимизироваться. Inc и быстрее и понятнее компилятору.
|
06.08.2015, 17:57 | #4 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Спасибо, как-то не подумал проверить это в дизассемблере, в Delphi 7 он тоже есть.
Отключил оптимизацию и проверил различные варианты, результат один и тот же: Цитата:
Может вопрос не в тему, но есть ли что-то подобно для строк? Чтоб не писать str:=str+'word';
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
|
06.08.2015, 18:45 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Есть функция concat. Скорость не проверял, но Вы теперь и сами знаете как.
Перед использованием внимательно прочтите о функции.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 06.08.2015 в 18:50. |
06.08.2015, 18:53 | #6 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,544
|
Компилятор такие штуки должен уметь оптимизировать. Но в древнем Турбо Паскале inc(i) был быстрее, к тому же при inc отсутствовала проверка выхода за границы типа (переполнение).
E-Mail: arigato.freelance@gmail.com
|
06.08.2015, 18:56 | #7 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Utkin, Concat, это не совсем то, что нужно. Вид записи будет:
Код:
Код:
Как вариант: Insert('67890',str,Length(str)); Но это не вариант
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 06.08.2015 в 19:02. |
06.08.2015, 19:10 | #8 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
06.08.2015, 19:16 | #9 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Должен уметь. Но некоторые не догадываются. Лучше всегда писать inc, да и по смыслу больше подходит.
В догонку: Задачка №5 |
06.08.2015, 19:38 | #10 | |
Форумчанин
Регистрация: 22.07.2015
Сообщений: 138
|
Цитата:
)))
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен или код, или блок схема, или просто обьяснение. | shewlett | Помощь студентам | 1 | 03.06.2015 16:34 |
Нужен скрипт для Photoshop или Lightroom, ну или отдельную программу. | Михаил Понедельник | Фриланс | 2 | 09.11.2011 21:37 |
Тестирующая программа (на PHP или JavaScript или Delphi или Visual Basic) | @@@Сергей@@@ | Фриланс | 2 | 05.05.2011 17:48 |
Ошибка в temp... виноваты динамичсекие массивы или тип не тот или.. | Shabalinuk | C++ Builder | 5 | 12.11.2010 12:38 |