14.03.2013, 01:53
|
#81
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
Сообщение от Boba_spb
|
будем считать что мне просто повезло
|
Скорее не повезло. При легкомысленном отношении к граблям, везение - это когда грабли срабатывают на самых ранних этапах, когда объем работ по исправлению/восстановлению и стоимость потерь минимальны.
__________________
There's always more than one way to skin a cat.
|
|
|
|
14.03.2013, 09:00
|
#82
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
Нашел в стандарте C99 пояснения по этому поводу. Поведение лексического анализатора всё же подчинено определенному правилу, но правило ( на мой взгляд, довольно произвольное) таково, что отсылка к приоритетам операций является-таки ошибкой. Изначально я отнес ситуацию к таким штучкам, как " i=2; x[i++] = val;", но, освежив память, вижу, что грабли здесь чуточку другие.
Успехов.
__________________
There's always more than one way to skin a cat.
|
|
|
|
14.03.2013, 09:23
|
#83
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
За утренней кофой пообсуждали эту проблему. Резюме - посмотреть стандарт С99 и .... быть проще как дубовая дверь без ручки - пнул, она и открылась!
А компиляторы, говорят, иногда даже приоритет операций не по стандарту выполняют. ( Нарывались на ранних версиях IAR, например);
|
|
|
|
14.03.2013, 09:29
|
#84
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
__________________
There's always more than one way to skin a cat.
|
|
|
|
14.03.2013, 10:53
|
#85
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
на работе, однако - есть чем заниматься не до C99. Но, вспоминая всякое баловство с парсерами, идешь слева направо до неопределенности. Скорее всего поэтому работает типа такого
..
1 шаг - i смотрим дальше
2 шаг i+ - пришли - разборка с "i"
3 шаг + - смотрим дальше
4 шаг ++ - смотрим дальше
5 шаг +++ пришли разборка с "++"
6 шаг + - смотрим дальше
7 шаг +i - пришли разборка с "+"
8 шаг i - смотрим дальше
9 шаг i; -пришли - разборка с "i"
и т.д.
|
|
|
|
14.03.2013, 15:53
|
#86
|
Заблокирован
Регистрация: 22.07.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
Че набросились на человека? Он задал вопрос, что-то не нравится, не пишите, не отвечайте, а уже тем более, не надо типа "...Это нынешняя молодежь", "глупые вопросы", не может быть глупых вопросов на форуме, есть умники, у которых мозги из ушей лезут.
|
|
|
|
14.03.2013, 16:29
|
#87
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
Сообщение от pwmich
|
Че набросились на человека? Он задал вопрос, что-то не нравится, не пишите, не отвечайте, а уже тем более, не надо типа "...Это нынешняя молодежь", "глупые вопросы", не может быть глупых вопросов на форуме, есть умники, у которых мозги из ушей лезут.
|
С 2007 года молчали, а тут решили вставить свое веское слово? Сильно.
|
|
|
|
14.03.2013, 17:07
|
#88
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
Сообщение от pwmich
|
Че набросились на человека? Он задал вопрос, что-то не нравится, не пишите, не отвечайте, а уже тем более, не надо типа "...Это нынешняя молодежь", "глупые вопросы", не может быть глупых вопросов на форуме, есть умники, у которых мозги из ушей лезут.
|
Могут! И вопросы. И ответы.
Специализированные форумы слегка отличаются от чатов одноглазников и вконтактеров. Право на изложение рекомендаций, подобных вашим, в принципе еще надо заслужить. Не только на форумах, но и по жизни.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
17.05.2013, 12:32
|
#89
|
Частый гость
Регистрация: 12.05.2009
Сообщений: 44
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
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 не константа?
|
|
|
|
17.05.2013, 12:52
|
#90
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,924
Сказал спасибо: 2,543
Сказали Спасибо 11,821 раз(а) в 5,927 сообщении(ях)
|
Re: Пара непонятных моментов по языку СИ
korsaj, и что Вы при этом ожидаете увидеть в качестве "пятого элемента" в массиве?
Не логичнее ли определить дефайном?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:26.
|
|