воскресенье, 9 мая 2010 г.

дилемма программиста или вопрос использования невалидного кода

наверно многие программисты сталкиваются в какой-либо момент своей работы с этой проблемой... а именно: использование не совсем корректного кода(но работающего!) в своём проекте или же написание несколько более сложного кода, но не допускающего неоднозначность своего исполнения на различных машинах\компиляторах.

итак... перейду к сути проблемы.
есть код(не рабочий, но компилирующийся):

vector v;
int i = 0;
while(v[i]!= 1 && (i < v.size())) ++i;



и есть рабочий код:

vector v;
int i = 0;
while((i < v.size()) && v[i]!= 1) ++i;



причины его работоспособности во 2м случае кроются в оптимизации операции конъюнкции и думаю, что они будут очевидны тем, кто знает, что это за операция.


вопрос в том, а корректно ли использование такого кода(рабочего варианта) в своих программах или же нет. я имею ввиду вообще, а не конкретный случай(в данном случае всё решается разделением проверок и введением 1й доп. переменной).

Комментариев нет:

Отправить комментарий