5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|||||||||||
1 | |||||||||||
I++ и ++i (Префиксная и постфиксная форма инкремента)29.11.2014, 13:48. Показов 5917. Ответов 15
Метки нет (Все метки)
Префиксная и постфиксная форма инкремента.
Когда писал на C++ как-то не задумывался о разнице, а сейчас в примере встретил ++i и решил углубиться в детали, только голова еще больше опухла. В этом примере
0
|
29.11.2014, 13:48 | |
Ответы с готовыми решениями:
15
Постфиксная, префиксная форма Инкремент префиксная и постфиксная запись Постфиксная и префиксная форма инкремента и декремента. Префиксная и постфиксная запись инкремента |
29.11.2014, 13:56 | 2 | |||||
Сообщение было отмечено CSharp_user как решение
Решение
CSharp_user, в данном примере никакой. Однако попробуйте вот так:
при постфиксной форме сначала текущее значение используется, а потом производится инкремент. А при префиксной текущее значение сначала инкрементируется, а потом уже используется в выражении. Улавливаете смысл?
1
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
29.11.2014, 13:59 [ТС] | 3 |
И правда, очень наглядно. Спасибо!
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
29.11.2014, 14:02 [ТС] | 5 |
Только не понятно, почему в примере выше они использовали именно ++i...
0
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
|
29.11.2014, 15:24 | 6 |
CSharp_user, CSharp_user, https://www.cyberforum.ru/csha... 97094.html
Чекни топик, я там писал об этом...
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
||||||
29.11.2014, 18:29 [ТС] | 7 | |||||
Для циклов разницы в производительности практически никакой:
0
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
|
30.11.2014, 00:49 | 8 |
CSharp_user, ты внимательно читал про оптимизацию??
Вот тесты у меня.
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
||||||
30.11.2014, 12:31 [ТС] | 9 | |||||
Какая-то беда у твоего компилятора.
У меня разница не такая огромная: Добавлено через 12 минут Ахаха. Поменяй в коде v++ на ++v и обратно
0
|
30.11.2014, 14:13 | 10 | |||||
CSharp_user,
Вы просто сравните IL код, он идентичен IL код цикла, и он будет всегда таким, независимо v++ или ++v или v+=1
1
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
30.11.2014, 18:12 [ТС] | 11 |
Ну я верю. Это нужно показать Anderok.
Не по теме: Не для сильной нужды, а для кругозора: у меня VS2013. Я подключил Microsoft Windows SDK for Windows 7, теперь в оболочке можно запустить дисассемблер. Только он у меня показывает очень маленький кусок кода.
0
|
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
|
|
01.12.2014, 11:40 | 12 |
CSharp_user, по идее, можно через илдасм открывать, тогда всё будет.
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
01.12.2014, 12:00 [ТС] | 13 |
Не, если "через", то я настроил и у меня и так прекрасно открывается во внешнем окне при выборе Tools -> IL disassembler. При этом вызывается "Microsoft .NET Framework IL disassembler". Но это как бы внешняя программа. А если выводить в окно, то выводится маленький кусок.
Странно, что нет встроенного в VS2013 инструмента. Ну ладно, этого хватит, все равно почти не пользуюсь.
0
|
Администратор
|
|
01.12.2014, 17:48 | 14 |
В студию встроен дизассемблер (до машинных команд, не до IL).
А ILDasm входит в Microsoft SDK, который идёт рука об руку со студией, так что ничего удивительного. На практике, я пользуюсь им только для участия в подобных спорах, больше никогда
0
|
5 / 5 / 4
Регистрация: 11.10.2014
Сообщений: 57
|
|
02.12.2014, 18:14 [ТС] | 15 |
0
|
Администратор
|
|
02.12.2014, 18:32 | 16 |
Именно - только в отладке. Почему неактивен - точно не скажу, стоит написать немного кода и пройтись по нему через точки останова, может появится.
0
|
02.12.2014, 18:32 | |
02.12.2014, 18:32 | |
Помогаю со студенческими работами здесь
16
Операции инкремента и декремента (префиксная и постфиксная версия). Подскажите. В программе префиксная форма инкремента не работает Постфиксная и префиксная запись в выражении Префиксная форма Стек, постфиксная форма Постфиксная форма записи Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |