【发布时间】:2011-02-20 07:43:46
【问题描述】:
我正在使用 EXIT_FAILURE 宏,所以我需要包含 stdlib.h 或 cstdlib。但我不知道有什么区别。我应该使用 cXXX 样式的头文件而不是 XXX.h 吗?
谢谢。
【问题讨论】:
-
在这里查看我的更新答案。 stackoverflow.com/questions/13889467/…
标签: c++
我正在使用 EXIT_FAILURE 宏,所以我需要包含 stdlib.h 或 cstdlib。但我不知道有什么区别。我应该使用 cXXX 样式的头文件而不是 XXX.h 吗?
谢谢。
【问题讨论】:
标签: c++
<cstdlib> 只是 <stdlib.h> 包装在 std 命名空间中。你应该使用<cstdlib> 来保持你的全局命名空间干净。
【讨论】:
由于 EXIT_FAILURE 是一个宏,因此包含它没有任何区别。 cstdlib 版本会将所有函数的名称放入 std 命名空间,因此您可以这样说:
std::exit(0);
但由于宏不尊重命名空间,你不能说:
std::EXIT_FAILURE
【讨论】:
cstdlib 时,我仍然可以在没有std:: 的情况下调用exit(EXIT_FAILURE)。