Какое основное различие между 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>, чтобы ваше глобальное пространство имен было чистым.