在C ++中stdlib.h和cstdlib之间的主要区别是什么?

时间:2010-05-17 08:58:02

标签: c++

我正在使用EXIT_FAILURE宏,所以我需要包含stdlib.h或cstdlib。但我不知道有什么区别。我应该使用cXXX样式头文件而不是XXX.h吗?

谢谢。

2 个答案:

答案 0 :(得分:27)

<cstdlib>仅包含在<stdlib.h>命名空间中std。您应该使用<cstdlib>以保持全局命名空间的清洁。

答案 1 :(得分:17)

由于EXIT_FAILURE是一个宏,因此您所包含的内容没有任何区别。 cstdlib版本会将所有函数的名称放入std命名空间,因此您可以这样说:

std::exit(0);

但由于宏不尊重名称空间,你不能说:

std::EXIT_FAILURE