我正在使用EXIT_FAILURE宏,所以我需要包含stdlib.h或cstdlib。但我不知道有什么区别。我应该使用cXXX样式头文件而不是XXX.h吗?
谢谢。
答案 0 :(得分:27)
<cstdlib>
仅包含在<stdlib.h>
命名空间中std
。您应该使用<cstdlib>
以保持全局命名空间的清洁。
答案 1 :(得分:17)
由于EXIT_FAILURE是一个宏,因此您所包含的内容没有任何区别。 cstdlib
版本会将所有函数的名称放入std
命名空间,因此您可以这样说:
std::exit(0);
但由于宏不尊重名称空间,你不能说:
std::EXIT_FAILURE