Ноль C++ по сравнению с ПУСТЫМ УКАЗАТЕЛЕМ

Я буду также второй CMake. Я использовал его долгое время на многоплатформенном проекте, и я очень удовлетворен им.

10
задан JT. 5 November 2009 в 21:06
поделиться

6 ответов

В C ++ вам нужно использовать NULL , 0 или в некоторых новых компиляторах nullptr. Использование NULL вместо 0 может быть предметом споров в некоторых кругах, но ИМХО, NULL является более популярным использованием, чем 0.

19
ответ дан 3 December 2019 в 13:56
поделиться

nil не существует в стандартном C ++. Вместо этого используйте NULL .

13
ответ дан 3 December 2019 в 13:56
поделиться

Да. Это NULL в C и C ++ , а в Objective-C - nil .

Каждый язык имеет свой собственный идентификатор объект. В C стандартной библиотеке NULL является typedef ((void *) 0) . В C ++ стандартной библиотеке NULL является typedef 0 или 0L .

Однако IMHO, вы никогда не должны использовать 0 вместо NULL , поскольку это помогает читабельности кода, так же, как наличие постоянных переменных в вашем коде: без использования NULL значение 0 используется для нулевых указателей, а также для значения базового индекса в циклах, как а также количество / размеры для пустых списков, это затрудняет определение того, какой из них какой. Кроме того, это

4
ответ дан 3 December 2019 в 13:56
поделиться

0 - рекомендуемый и общий стиль для C ++

2
ответ дан 3 December 2019 в 13:56
поделиться

Я видел некоторые комментарии о том, почему не следует используйте 0. Обычно людям не нравятся магические числа или числа со смыслом. Дайте им имя. Я бы предпочел увидеть в коде ANSWER_TO_THE_ULTIMATE_QUESTION больше 42.

Что касается nil, я знаю, что Obj-C также использует nil. Мне не хотелось бы думать, что кто-то пошел против очень популярного соглашения (или, по крайней мере, того, что я помню) о NULL, который, как я думал, был где-то в заголовке стандартной библиотеки. Однако я давно не изучал C ++.

0
ответ дан 3 December 2019 в 13:56
поделиться

просто добавьте в начале

#define null '\0'

или что угодно вместо null и придерживайтесь того, что вам больше нравится. Концепция null в C ++ просто связана с указателем, не указывающим ни на что ( 0x0 ).

Помните, что каждый компилятор может иметь собственное определение null, nil, NULL, что угодно .. но в итоге все равно 0.

Вероятно, в исходном тексте, который вы смотрите, есть

#define nil '\0'

где-то в заголовочном файле ..

0
ответ дан 3 December 2019 в 13:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: