Какое основное различие между stdlib.h и cstdlib в С++?
Я использую макрос EXIT_FAILURE, поэтому мне нужно включить stdlib.h или cstdlib. Но я не знаю, в чем разница. Должен ли я использовать заголовочный файл стиля cXXX, а не XXX.h?
Спасибо.
Ответы
Ответ 1
Поскольку EXIT_FAILURE - это макрос, он не имеет никакого значения, которое вы включаете. Версия cstdlib
поместит имена всех функций в пространство имен std
, поэтому вы можете сказать такие вещи, как:
std::exit(0);
но поскольку макросы не уважают пространства имен, вы не можете сказать:
std::EXIT_FAILURE
Ответ 2
<cstdlib>
просто <stdlib.h>
, завернутый в пространство имен std
. Вы должны использовать <cstdlib>
, чтобы ваше глобальное пространство имен было чистым.