[an error occurred while processing this directive]
Вопрос по С
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
DASM 10 декабря 2002 г. 14:28
|
|
|
|
Имеем
char *pCRC;
((*pCRC) >>= 1) |= 0x80;
В MSVC все ОК
IAR выдает Error[Pe137]: expression must be a modifiable lvalue
Чего за фигня ?
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Действительно, проще надо быть. Вот то же самое только одним присваиванием и в одну строчку *pCRC = (*pCRC >> 1) | 0x80; По идее должен сгенериться более компактный и быстрый код — NoMore (11.12.2002 12:58, пустое)
- А вот что стандарт пишет: — Mik (10.12.2002 19:55, 318 байт)
- А по-моему и не должен воспринимать. Можно модифицировать переменную, но не выражение. Нельзя, например (x+5) = 7, потому что слева выражение, а не переменная. Нельзя (x+5) |= 0x80 потому что нечему присваивать вычисленное выражение. Нельзя (x>>1) |= 0x80 потому что нельзя присвоить выражению (x>>1) значение. — Беня (10.12.2002 17:22, пустое)
- Кстати IAR в режиме C++ тоже пропустил. — BEAVIS (10.12.2002 17:04, пустое)
- И Hi-Tech PICC тоже выругался по этому поводу — NoMore (10.12.2002 15:50, 56 байт)
- Гм, чего ты хотел, я конечно понял, но на месте компилятора тоже бы отказался понимать.. — Dr.Alex (10.12.2002 14:47, пустое)
- намудрил — Romario (10.12.2002 14:34, 95 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru