[an error occurred while processing this directive]
|
Например
Я выполнил следующий фрагмент кода на TurboC++ 3.0 и на MSVisualC++ 6.0:
//...
int a=0;
cout//...
В первом случае я получил ответ "0", во втором "-2". И это далеко не единственный пример. Так, насколько я знаю, порядок вычисления операндов при вызове функции в стандарте языка Си++ не закреплен жестко. Значит, результаты выполнения f(++i,++i) также могут различаться для различных компиляторов.
Отправлено Доктор ТуамОсес 18 июня 2006 г. 20:45"
" ... Я просто хотел донести мысль, что одна и та же конструкция языка СИ++ при компиляции компиляторами разных фирм даст РАЗНЫЕ результаты.. Вот где полный АТАС.
Отправлено Доктор ТуамОсес 18 июня 2006 г. 23:29"
"Просто Дохтур хочет, чтобы все компиляторы давали на выходе одинаковый бинарный код :))) отправлено CD_Eater 18 июня 2006 г. 23:36"
"Нет, коллега. Вы меня не так поняли. Бинарный код меня не ибёт. Мне самое главное чтобы конечный результат получался одинаковый каким бы компилятором я не компилил свою прогу, чтобы "дважды два всегда было четыре"
Отправлено Доктор ТуамОсес 18 июня 2006 г. 23:40"
"Ну, то есть, допустим, у меня есть какая-то сложная функция листов на 10, которая что-то вычисляет, вчисляет...И в конце концо выдает результат - некое числовое значение. Дык вот. Хотелось бы, чтобы это значение было одним и тем же независимо от того компилятором какой фирмы с языка СИ++ я пользуюсь. Вот Так.
Отправлено Доктор ТуамОсес 18 июня 2006 г. 23:49"
"Ну так следуй букве закона. То есть, описания языка.
Отправлено CD_Eater 19 июня 2006 г. 00:08"
"Ну а как быть "если закон, что дышло, куда хочу туда и верчу". А если серьёзно, то в инете, очень много говорится, что в стандарте СИ++ очень много неоднозначностей и тёмных мест. В результате этого каждый производитель компиляторов "танцует как может". За примером далеко ходить не надо. ИАР и ВинАВР. Отправлено Доктор ТуамОсес 19 июня 2006 г. 00:31"
"Вроде и там и там СИ. И там и там для AVR. Но что-то они не очень-то дружат между собой Отправлено Доктор ТуамОсес 19 июня 2006 г. 00:37"
"Добавлю, нормальные компилятоны на неоднозначный код дают предупреждение - дальше решай сам, использовать конструкцию или нет.
Отправлено iBuilder 19 июня 2006 г. 00:44"
"Ответ: Но даже самый "умный" компилятор не сможет "разрулить" все неоднозначности, возникающие при всех возможных комбинациях различных языковых конструкций в одну если в языке слишком много неоднозначностей и "свободы". Да к тому же компилятор эта своя трактовка стандарта разработчиками компилятора.
Отправлено Доктор ТуамОсес 19 июня 2006 г. 01:09"
E-mail: info@telesys.ru