| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Условный переход (<x> ? <x> : <x>) |
| Автор: zodee 25.12.2003, 09:47 |
| В чем тут проблема, в ауте вот эта строчка: { int id1; int id2 ( (1) ? (id1) : (id2) ) = 100; } в одном проекте работает. а в другом выдает вот эту ошибку. error C2106: '=' : left operand must be l-value подскажите, кто может. И еще, ни кто не подскажет, что это вообще такое l-value ? |
| Автор: zodee 25.12.2003, 09:52 |
| Совсем забыл. Все это дело я компилировал под VC6++ Win32 Console Application. |
| Автор: Vyacheslav 25.12.2003, 10:12 |
| l-value - выражение, которое может стоять в слева от оператора присваивания. ( (1) ? (id1) : (id2) ) = 100; По идее все верно. Приведи дословно код в том и другом проекте. |
| Автор: Guest 25.12.2003, 13:12 |
| Ага нашел, в чем дело! но как это исправить? Дело в том, что это не работает в файлах с расширением *.с а в *.cpp все нормально. Очень странно. Кто знает почему, ПОМОГИТЕ!!! |
| Автор: Гость_setq 25.12.2003, 19:12 |
| не знаю... но догадываюсь. наверное, си подставляет вместо ?: конкретное значение id1, а си++ - саму переменную. |