реклама на сайте
подробности

 
 
> фича компиляторв, инкремент переменной
zhevak
сообщение May 11 2007, 11:25
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



На форуме программистов (здесь http://www.rsdn.ru/Forum/?mid=2481623) с пацанами сейчас подняли интересную тему. Думаю, что си-шникам тоже следует остерегаться подобного кода. В двух словах проблема состоит в том, как компилятор должен понимать оператор инкремента.



int i;
int x;

i = 5;
x = ++i + ++i;



Чему в результате будет равно х ?

Прикол в том, что MS VC++ 6.0 и VC++.NET дают результат, равный 14. Майкрософтовский C# и IAR говорят, что х = 13. А более всего удивил Watcom -- у него результат зависит от того, включена-ли оптимизация или нет... 07.gif

Я, конечно, понимаю, что код, который обсуждается, несколько далек от жизни, но все же, знать о таких прибабахах -- надо.

Вечером дома, попробую еще в CodeVision эту фичу покрутить.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zhevak   фича компиляторв   May 11 2007, 11:25
- - vromanov   Тут все просто. По стандарту результат исполнения ...   May 11 2007, 11:29
|- - Oldring   Цитата(vromanov @ May 11 2007, 15:29) Тут...   May 11 2007, 15:37
|- - zltigo   Цитата(Oldring @ May 11 2007, 18:37) В вы...   May 11 2007, 17:48
|- - vromanov   Цитата(zltigo @ May 11 2007, 21:48) Где В...   May 11 2007, 18:54
|- - zltigo   Цитата(vromanov @ May 11 2007, 21:54) И к...   May 11 2007, 19:03
|- - Oldring   Цитата(zltigo @ May 11 2007, 23:03) Никак...   May 11 2007, 19:59
||- - PrSt   Цитата(Oldring @ May 11 2007, 22:59) Поче...   May 13 2007, 14:08
||- - lebiga   Пора рассматривать известную шутку Ричи и Керниган...   May 13 2007, 16:03
||- - zhevak   Цитата... разбиваем как это делает компилятор temp...   May 14 2007, 00:04
||- - Oldring   Цитата(zhevak @ May 14 2007, 04:04) Отсюд...   May 14 2007, 03:31
|- - vromanov   Цитата(zltigo @ May 11 2007, 23:03) Никак...   May 11 2007, 20:02
|- - zltigo   Цитата(vromanov @ May 11 2007, 23:02) Ком...   May 11 2007, 20:19
|- - Oldring   Цитата(zltigo @ May 12 2007, 00:19) Нет, ...   May 11 2007, 21:07
|- - zltigo   Цитата(Oldring @ May 12 2007, 00:07) Это ...   May 11 2007, 21:57
|- - Oldring   Цитата(zltigo @ May 12 2007, 01:57) Перев...   May 12 2007, 07:23
|- - zltigo   Цитата(Oldring @ May 12 2007, 10:23) Я-то...   May 12 2007, 08:31
|- - Oldring   Цитата(zltigo @ May 12 2007, 12:31) Выраж...   May 12 2007, 08:45
|- - zltigo   Цитата(Oldring @ May 12 2007, 11:45) Ну т...   May 12 2007, 09:26
|- - Oldring   Цитата(zltigo @ May 12 2007, 13:26) Я при...   May 12 2007, 09:34
|- - zltigo   Цитата(Oldring @ May 12 2007, 12:34) Не в...   May 12 2007, 09:36
|- - Oldring   Цитата(zltigo @ May 12 2007, 13:36) Жаль....   May 12 2007, 09:56
- - Ivan_Kov   Проблема стара как "С"... Скобки использ...   May 11 2007, 11:33
|- - zltigo   Цитата(Ivan_Kov @ May 11 2007, 14:33) Про...   May 11 2007, 18:04
- - amw   GCC 3.4.5 gcc -o x x.c x = 14 gcc -Os -o x x.c x =...   May 11 2007, 11:33
- - zltigo   Цитата(zhevak @ May 11 2007, 14:25) как к...   May 11 2007, 11:57
- - vromanov   не страдайте фигней. Вот вам выдержка из стандарта...   May 11 2007, 12:39
|- - zltigo   Цитата(vromanov @ May 11 2007, 15:39) не ...   May 11 2007, 12:42
- - vromanov   Как любителю стандартов, вам надо было не искать о...   May 11 2007, 12:51
|- - zltigo   Цитата(vromanov @ May 11 2007, 15:51) Тут...   May 11 2007, 13:13
|- - dxp   Цитата(vromanov @ May 11 2007, 19:51) Как...   May 11 2007, 13:37
|- - Сергей Борщ   Цитата(dxp @ May 11 2007, 16:37) Очевидно...   May 11 2007, 14:22
|- - zltigo   Цитата(Сергей Борщ @ May 11 2007, 17:22) ...   May 11 2007, 14:29
- - Ivan_Kov   Я вот смотрю, и не могу никак понять, что за нужда...   May 11 2007, 15:32
- - vromanov   Удивительно, что столь очевидная вещь собрала сто...   May 11 2007, 16:08
|- - lebiga   Цитата(vromanov @ May 11 2007, 20:08) Уди...   May 11 2007, 19:57
- - defunct   Цитатаx = ++i + ++i; Это в китайских исходниках...   May 11 2007, 17:54
- - vetal   По моему все очень просто, т.к. код архитектурно з...   May 12 2007, 10:16
|- - Oldring   Цитата(vetal @ May 12 2007, 14:16) 3. x=i...   May 12 2007, 10:21
- - vetal   ЦитатаТак вот откуда взялась эта третья операция -...   May 12 2007, 10:42
|- - Oldring   Цитата(vetal @ May 12 2007, 14:42) В дере...   May 12 2007, 10:52
|- - zltigo   Цитата(vetal @ May 12 2007, 13:42) Это вп...   May 12 2007, 11:48
- - vetal   Потому и "undefined bihavior", что по мо...   May 12 2007, 11:11
|- - Oldring   Цитата(vetal @ May 12 2007, 15:11) Потому...   May 12 2007, 12:23
|- - zltigo   Цитата(Oldring @ May 12 2007, 15:23) arm-...   May 12 2007, 13:05
|- - Oldring   Цитата(zltigo @ May 12 2007, 17:05) Молча...   May 12 2007, 13:14
|- - zltigo   Цитата(Oldring @ May 12 2007, 16:14) В пр...   May 12 2007, 14:14
|- - Oldring   Цитата(zltigo @ May 12 2007, 18:14) Но пр...   May 12 2007, 14:38
|- - zltigo   Цитата(Oldring @ May 12 2007, 17:38) В лю...   May 12 2007, 14:51
|- - Oldring   Цитата(zltigo @ May 12 2007, 18:51) Ну ск...   May 12 2007, 15:14
|- - zltigo   Цитата(Oldring @ May 12 2007, 18:14) Как ...   May 12 2007, 15:42
|- - Oldring   Цитата(zltigo @ May 12 2007, 19:42) И при...   May 12 2007, 16:06
|- - zltigo   Цитата(Oldring @ May 12 2007, 19:06) Стан...   May 12 2007, 16:29
|- - Oldring   Цитата(zltigo @ May 12 2007, 20:29) Закон...   May 12 2007, 16:57
|- - zltigo   Цитата(Oldring @ May 12 2007, 19:57) arm-...   May 12 2007, 17:55
|- - Oldring   Цитата(zltigo @ May 12 2007, 21:55) Меня ...   May 13 2007, 08:35
|- - zltigo   Цитата(Oldring @ May 13 2007, 11:35) А с ...   May 13 2007, 06:24
|- - Oldring   Цитата(zltigo @ May 13 2007, 10:24) Посем...   May 13 2007, 06:43
|- - zltigo   Цитата(Oldring @ May 13 2007, 09:43) А во...   May 13 2007, 07:24
|- - Oldring   Цитата(zltigo @ May 13 2007, 11:24) Никак...   May 13 2007, 08:02
|- - zltigo   Цитата(Oldring @ May 13 2007, 11:02) Один...   May 13 2007, 08:11
|- - Oldring   Цитата(zltigo @ May 13 2007, 12:11) Не дв...   May 13 2007, 08:19
|- - zltigo   Цитата(Oldring @ May 13 2007, 11:19) Проб...   May 13 2007, 09:15
|- - Oldring   Цитата(zltigo @ May 13 2007, 13:15) Может...   May 13 2007, 09:27
|- - zltigo   Цитата(Oldring @ May 13 2007, 12:27) Не с...   May 13 2007, 09:38
|- - Oldring   Цитата(zltigo @ May 13 2007, 13:38) Может...   May 13 2007, 09:55
|- - zltigo   Цитата(Oldring @ May 13 2007, 12:55) В ст...   May 13 2007, 10:12
|- - Oldring   Цитата(zltigo @ May 13 2007, 14:12) Отлич...   May 13 2007, 10:26
|- - zltigo   Цитата(Oldring @ May 13 2007, 13:26) Пров...   May 13 2007, 10:37
|- - Oldring   Цитата(zltigo @ May 13 2007, 14:37) Aвтор...   May 13 2007, 11:03
|- - vromanov   Цитата(zltigo @ May 13 2007, 14:37) Ну ка...   May 13 2007, 12:03
|- - zltigo   Цитата(vromanov @ May 13 2007, 15:03) Воо...   May 13 2007, 13:15
- - Niko1a$   Посмотрите полученный ассемблерный код на своей ма...   May 12 2007, 12:42
|- - Oldring   Цитата(Niko1a$ @ May 12 2007, 16:42)...   May 12 2007, 12:46
- - vetal   nios2-elf-gcc выдает без оптимизации 13, с оптимиз...   May 12 2007, 13:09
- - vetal   ЦитатаВ обоих случаях оптимизации говорит нельзя? ...   May 12 2007, 14:57
- - singlskv   Я Вам не помешаю ? Выскажу свое ИМХО: - Компилято...   May 12 2007, 22:53
|- - zltigo   Цитата(singlskv @ May 13 2007, 01:53) - р...   May 13 2007, 06:48
|- - cebotor   Цитата(singlskv @ May 13 2007, 02:53) Я В...   May 15 2007, 06:19
|- - Oldring   Цитата(cebotor @ May 15 2007, 10:19) все ...   May 15 2007, 06:26
- - scifi   Ну вы даёте... Эту бы энергию - да в мирных целях ...   May 13 2007, 06:20
- - vromanov   А то, что значение переменной может поменяться в ...   May 14 2007, 00:07
|- - zhevak   Цитата(vromanov @ May 14 2007, 06:07) А т...   May 14 2007, 00:19
|- - vromanov   Цитата(zhevak @ May 14 2007, 04:19) не-е,...   May 14 2007, 00:22
- - amw   В пост #4 при компилляции добавляем -Wall и получа...   May 14 2007, 07:34


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 08:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.03552 секунд с 7
ELECTRONIX ©2004-2016