Да, в основном.
Прежде всего, NULL - это typedef. Я мог бы по-королевски напортачить, сказав в ранее включенном заголовке
#define NULL 1
Это может не иметь большого смысла, но с каких это пор код других людей когда-либо имел смысл? :)
Кроме того, хотя это, вероятно, синтаксически безопасно, оно не является семантически правильным. NULL означает «ничего», ни true, ни false, ни логическое значение, ни int, ни string. Это означает «символ для ничего». Так что тестирование на NULL больше похоже на философскую проблему: если дерево падает в лесу и if(listener)
, издает ли он звук?
Сделайте всем одолжение и будьте внимательны при тестировании против NULL.