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

Bri*_*ian 17 c++

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

谢谢.

Cha*_*esB 27

<cstdlib>只是<stdlib.h>包装在std命名空间中.您应该使用<cstdlib>以保持全局命名空间清洁.


小智 17

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

std::exit(0);
Run Code Online (Sandbox Code Playgroud)

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

std::EXIT_FAILURE
Run Code Online (Sandbox Code Playgroud)