вторник, 26 мая 2009 г.

if statements [ C / C++ ]

Исключительно в целях улучшения читабельности кода рекомендуется вместо структур вида: if ((p = q)) [1] писать: if ((p = q) != NULL) [2]. Это главным образом связано с тем, что программисты часто ошибаются используя '=' вместо '=='.
В случае когда проверка на NULL проводится явным образом[2] у человека читающего код, мысли о том что вы что-то перепутали не возникает, чего нельзя сказать о коде [1].

UPD:
инструкцией if((p = q) != NULL) имеет смысл пользоваться только, если q - это вызов функции, возвращаемое значение которой мы хотим сохранить. Например:
if((r = foo(...)) != 0) err(1, "foo");

thx2 ivaxer
.

1 комментарий:

  1. инструкцией if((p = q) != NULL) имеет смысл пользоваться только, если q - это вызов функции, возвращаемое значение которой мы хотим сохранить. Например:
    if((r = foo(...)) != 0) {
    обработка ошибки, с кодом r
    }

    ОтветитьУдалить