Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Условный переход (<x> ? <x> : <x>)


Автор: zodee 25.12.2003, 09:47
В чем тут проблема, в ауте sad.gif.
вот эта строчка:
{
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
Ага нашел, в чем дело! но как это исправить? confused.gif
Дело в том, что это не работает в файлах с расширением *.с а в *.cpp все нормально. Очень странно.
Кто знает почему, ПОМОГИТЕ!!!

Автор: Гость_setq 25.12.2003, 19:12
не знаю... но догадываюсь.

наверное, си подставляет вместо ?: конкретное значение id1, а си++ - саму переменную.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)