[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Да блин читал я стандарт 19 июня 2006 г. 18:00
В ответ на: Читай стандарт С, такие вещи непозволительны,но некторые компиляторы прогладтывают BC3.1 + Watccom 10.0 -... отправлено Kenat 19 июня 2006 г. 17:38

Например

Я выполнил следующий фрагмент кода на 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: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru