В последнем обзоре кода участник пытается обеспечить, чтобы все проверки NULL
на указателях выполнялись следующим образом:
int * some_ptr;
// ...
if (some_ptr == NULL)
{
// Handle null-pointer error
}
else
{
// Proceed
}
вместо
int * some_ptr;
// ...
if (some_ptr)
{
// Proceed
}
else
{
// Handle null-pointer error
}
Я согласен с тем, что его способ немного более ясен в том смысле, что он явно говорит "Удостоверьтесь, что этот указатель не является NULL", но я бы возразил, сказав, что любой, кто работает над этим кодом, поймет, что с помощью указателя переменная в выражении if
неявно проверяется на NULL
. Кроме того, я чувствую, что второй метод имеет меньший шанс ввести ошибку ила:
if (some_ptr = NULL)
что является абсолютной болью для поиска и отладки.
Какой способ вы предпочитаете и почему?