У перші дні C ++, коли він був закріплений поверх C, ви не можете використовувати NULL, як це було визначено як (void*)0. Ви не можете призначити NULL жодному вказівнику, окрім цього void*, який зробив його марним. Ще в ті часи було прийнято, що ти користувався0 (нуль) для нульових покажчиків.
До сьогодні я продовжую використовувати нуль як нульовий покажчик, але ті, хто навколо мене, наполягають на використанні NULL. Я особисто не бачу ніякої користі від того, щоб надати ім'я ( NULL) існуючому значенню - і оскільки я також люблю перевіряти покажчики на значення правди:
if (p && !q)
do_something();
тоді використання нуля має більше сенсу (як якщо ви використовуєте NULL, ви не можете логічно використовувати p && !q- вам потрібно явно порівнювати NULL, якщо ви не вважаєте, що NULLце нуль, і в цьому випадку, чому використовуватиNULL ).
Чи є якась об’єктивна причина віддати перевагу нулю над NULL (або навпаки), або все це лише особисті переваги?
Редагувати: Я повинен додати (і мався на увазі спочатку), що за допомогою RAII та винятків я рідко використовую нульові / NULL покажчики, але іноді вони все ще потрібні.