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

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


 
Опции темы

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

Непрочитано 14.03.2013, 01: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, 09:00  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Нашел в стандарте C99 пояснения по этому поводу. Поведение лексического анализатора всё же подчинено определенному правилу, но правило (на мой взгляд, довольно произвольное) таково, что отсылка к приоритетам операций является-таки ошибкой. Изначально я отнес ситуацию к таким штучкам, как "i=2; x[i++] = val;", но, освежив память, вижу, что грабли здесь чуточку другие.

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

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

Сообщение от Boba_spb Посмотреть сообщение
Резюме - посмотреть стандарт С99 и ....
Мудрое решение. Иии... что же нашли?

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

на работе, однако - есть чем заниматься не до C99. Но, вспоминая всякое баловство с парсерами, идешь слева направо до неопределенности. Скорее всего поэтому работает типа такого
..
1 шаг - i смотрим дальше
2 шаг i+ - пришли - разборка с "i"
3 шаг + - смотрим дальше
4 шаг ++ - смотрим дальше
5 шаг +++ пришли разборка с "++"
6 шаг + - смотрим дальше
7 шаг +i - пришли разборка с "+"
8 шаг i - смотрим дальше
9 шаг i; -пришли - разборка с "i"
и т.д.
Boba_spb вне форума  
Непрочитано 14.03.2013, 15:53  
pwmich
Заблокирован
 
Регистрация: 22.07.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
pwmich на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Че набросились на человека? Он задал вопрос, что-то не нравится, не пишите, не отвечайте, а уже тем более, не надо типа "...Это нынешняя молодежь", "глупые вопросы", не может быть глупых вопросов на форуме, есть умники, у которых мозги из ушей лезут.
pwmich вне форума  
Непрочитано 14.03.2013, 16:29  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Сообщение от pwmich Посмотреть сообщение
Че набросились на человека? Он задал вопрос, что-то не нравится, не пишите, не отвечайте, а уже тем более, не надо типа "...Это нынешняя молодежь", "глупые вопросы", не может быть глупых вопросов на форуме, есть умники, у которых мозги из ушей лезут.
С 2007 года молчали, а тут решили вставить свое веское слово? Сильно.
realid вне форума  
Непрочитано 14.03.2013, 17:07  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Сообщение от pwmich Посмотреть сообщение
Че набросились на человека? Он задал вопрос, что-то не нравится, не пишите, не отвечайте, а уже тем более, не надо типа "...Это нынешняя молодежь", "глупые вопросы", не может быть глупых вопросов на форуме, есть умники, у которых мозги из ушей лезут.
Могут! И вопросы. И ответы.
Специализированные форумы слегка отличаются от чатов одноглазников и вконтактеров. Право на изложение рекомендаций, подобных вашим, в принципе еще надо заслужить. Не только на форумах, но и по жизни.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
dosikus (14.03.2013)
Непрочитано 17.05.2013, 12:32  
korsaj
Частый гость
 
Регистрация: 12.05.2009
Сообщений: 44
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
korsaj на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

Помогите, разъясните что я делаю не так?
Делаю меню. Есть строки которые нужно выводить на дисплей. Признаком конца страницы меню служит знак "+".

Вот что я делаю:
Код:
const uint8_t *const EndMenu =  "+";

 uint8_t const * Menu_1[5] = {
				"Engine",
  				"Brakes",
  				"Transmission",
  				"Set-Up Mode",
  				EndMenu
				};
На что он мне выдает ошибку:
Код:
..\USER\Strings.h(30): error:  #28: expression must have a constant value
..\USER\Strings.h:                              EndMenu
..\USER\Strings.h:                              ^
Почему для компилятора EndMenu не константа?
korsaj вне форума  
Непрочитано 17.05.2013, 12:52  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Пара непонятных моментов по языку СИ

korsaj, и что Вы при этом ожидаете увидеть в качестве "пятого элемента" в массиве?
Не логичнее ли определить дефайном?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 
Опции темы

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

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, время: 10:02.


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