![]() |
|
Модераторы: bsa |
![]()
|
|
| LeonidPr |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Заинтересовала эта тема (особенно в плане проделок компилятора), решил попробовать запустить этот пример с вашими исправлениями. И столкнулся с интересной особенностью компиляторов. После сборки и запуска примера в C++ Builder 5 получил вывод в консоли: 3 3 2 (т.е. в качестве значения b выводится то, что ей присвоили). Компиляция этого примера компилером gcc дала результат: 3 3 3. Возможно необходимо ковырять настройки Builder-а, но оптимизацию я полностью отключил. Решил посмотреть, что-же генерит Builder. Скормил exe-шник ida и получил следующее (комментарии мои):
Получается, как было уже сказано mes, "не изменяется" и "выводится старое значение" это разное поведение. Компилятор при выводе константы запихнул в стек не то значение, которое расположено в памяти, выделенной для этой константы, а то значение, которым её инициализировали при объявлении. Это сообщение отредактировал(а) LeonidPr - 17.2.2012, 09:37 --------------------
pkunzip.zip |
||||||
|
|||||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
гадание это ко мне относится ? ну так я не знаю же результатов именно тс, даже если по ссылке показывает эту ошибку |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
newbee бдит!
|
|||
|
||||
| novice2011 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 23.7.2011 Репутация: нет Всего: нет |
Да, уж, теперь я точно понял, что совершенно ничего не понял.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
novice2011, а что тут понимать? Язык С++ очень мощный. На нем можно и легкое быстрое приложение состряпать для встраиваемого девайса, а можно и распределенную систему промышленного уровня написать за вменяемые сроки. Но за все надо платить: язык содержит в себе ряд спорных особенностей (иногда даже ошибок проектирования самого языка), которые при неправильном использовании могут сильно усложнить жизнь. Поэтому, чтобы все эти особенности освоить, нужно огромное время изучения и практики.
Если ты чувствуешь в себе силы всю жизнь учиться, а так же желание писать программы, то добро пожаловать к нам - С/С++ программистам. Если же тебе хочется только попробовать, то можешь начать с что-нибудь попроще. |
|||
|
||||
| novice2011 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 23.7.2011 Репутация: нет Всего: нет |
Спасибо, bsa. Хочется стать таким же грамотным, как ребята, которые помогли мне уяснить некоторые моменты, поэтому остается только утроить свои усилия по изучению языка.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |