Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Пара непонятных моментов по языку СИ

Непрочитано 13.03.2013, 23:38  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Сообщение от Boba_spb Посмотреть сообщение
Ну так все так и должно быть
Вы не поняли всей прелести ситуации - приоритет операций тут абсолютно ни при чем, неопределенным является порядок интерпретации записи вида "i+++i". Вторая и третья строки в примере приведены вовсе не для того, чтобы сосчитать до семи и восьми, соответственно, а для того, чтобы показать, что:
  • из двух равноправных способов интерпретации выражения данный компилятор выбрал второй (а другой компилятор имеет право выбрать первый),
  • данный компилятор осуществил преинкремент не тогда, когда это "предусмотрено текстом", а до начала вычисления значения выражения (чтобы дважды не доставать значение i), а другой компилятор мог бы сделать иначе и получить ту же семерку, что и в первых двух строках.
Реклама:
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 13.03.2013, 23:51  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Да посмотрел я на трех компиляторах IAR овском, борландовском и гнутом - все близняшки - как в учебнике "++ выше приоритет чем у + слева направо" Строку то они парсят слева направо вот и ловят ++ а потом +.
Boba_spb вне форума  
Непрочитано 13.03.2013, 23:53  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Сообщение от Boba_spb Посмотреть сообщение
Строку то они парсят слева направо
"Приоритет" определяет порядок исполнения, а не порядок распознавания парсером.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 14.03.2013, 00:23  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Ню ню - что значит тогда слева напрово ?
Придется позвонить знакомому - он на вычислительной математике универа студней учить программному ремеслу.

C# смотреть не интересно - его люди из борланда писали.
Хто там исчо у нас ? ваткомовский си глянуть.

Такс .. tempora, Ваша очередь тестить СИ.

Кстати, тесть - это тестер предыдущей версии жены !!!!
Миниатюры:
Нажмите на изображение для увеличения
Название: iii3.JPG
Просмотров: 36
Размер:	74.1 Кб
ID:	44611   Нажмите на изображение для увеличения
Название: iii1.JPG
Просмотров: 34
Размер:	71.4 Кб
ID:	44612   Нажмите на изображение для увеличения
Название: iii2.JPG
Просмотров: 36
Размер:	84.4 Кб
ID:	44613  

Boba_spb вне форума  
Непрочитано 14.03.2013, 00:24  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Надо просто избегать таких вариантов написания ... В этом нет мастерства. Для компилятора не важно на одной строке будет написано выражение или на 5. Объём результирующего кода, в идеале, от этого не изменится, а наглядность и отлаживаемость будет лучше если разбить.
SasaVitebsk вне форума  
Непрочитано 14.03.2013, 00:29  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Люблю советы !!! Особенно бесплатные !!!
Boba_spb вне форума  
Непрочитано 14.03.2013, 00:37  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Сообщение от Boba_spb Посмотреть сообщение
Ню ню - что значит тогда слева направо?
Это значит, что операции из списка, составленного парсером, будут исполняться в том порядке, в котором они были найдены парсером в тексте. На порядок распознавания парсером это никак не распространяется. То есть, формального правила, обязывающего парсер в последовательности "+++" выделять сначала "++" а затем "+", в стандарте нет.

Сообщение от Boba_spb Посмотреть сообщение
Хто там исчо у нас ? ваткомовский си глянуть.
Такс .. tempora, Ваша очередь тестить СИ.
Ещё чего - вопросы стандарта языка я голосованием не решаю. Если Вам пришло в голову придумывать правила, которых нет в стандарте языка, основываясь на том, как и что Вы наблюдаете в компиляторах, имеющихся под рукой в данный момент, то это Ваш выбор, не более.
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 14.03.2013 в 00:39.
tempora вне форума  
Непрочитано 14.03.2013, 00:48  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Три из трех ведут себя одинаково в данной ситуации, хочется посмотреть на компилятор, который в данной ситуации поступит иначе.
Boba_spb вне форума  
Непрочитано 14.03.2013, 00:53  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Сообщение от Boba_spb Посмотреть сообщение
Три из трех ...
Вот это и называется голосованием.

Я никому не запрещаю расставлять себе грабли и ходить между ними. Моё дело - предупредить, а объяснять потом заказчику "раньше всё нормально было" буду не я.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 14.03.2013, 01:17  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Кстати, гнутый и иаровский СИ эту строчку ругнули слегка замечанием, а борланд молча скушал. Глянул в инете на эту забаву, говорят что бывают разные результаты от натройки оптимизаторов и исчо чего то там. Так что будем считать что мне просто повезло.
Boba_spb вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комплементарная пара LORDCaric Информация по радиокомпонентам 2 19.11.2012 10:12
Лингвистический вопрос, по русскому языку!!! Sukhanov Отвлекитесь, эмбеддеры! 860 13.10.2010 16:18
DS18B20 и витая пара. Mishanya_82 Делимся опытом 6 25.03.2010 09:58
Комплементарная пара транзисторов SFA Информация по радиокомпонентам 19 21.05.2009 14:35
Help! Вопрос по языку Си ? nikhome Микроконтроллеры, АЦП, память и т.д 3 07.05.2008 07:23


Часовой пояс GMT +4, время: 16:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.