Подтвердить что ты не робот

Какое основное различие между stdlib.h и cstdlib в С++?

Я использую макрос EXIT_FAILURE, поэтому мне нужно включить stdlib.h или cstdlib. Но я не знаю, в чем разница. Должен ли я использовать заголовочный файл стиля cXXX, а не XXX.h?

Спасибо.

4b9b3361

Ответ 1

Поскольку EXIT_FAILURE - это макрос, он не имеет никакого значения, которое вы включаете. Версия cstdlib поместит имена всех функций в пространство имен std, поэтому вы можете сказать такие вещи, как:

std::exit(0);

но поскольку макросы не уважают пространства имен, вы не можете сказать:

std::EXIT_FAILURE

Ответ 2

<cstdlib> просто <stdlib.h>, завернутый в пространство имен std. Вы должны использовать <cstdlib>, чтобы ваше глобальное пространство имен было чистым.