text: Это приводит к плохому взаимодействию с перегрузкой функций: void foo(char *); void foo(int); Если макрос NULL определён как 0 (что является обычным для C++), строка foo(NULL); приведёт к вызову foo(int), а не foo(char *), как можно предположить при беглом просмотре кода, что почти наверняка не совпадает с планами программиста.