cstdlib和stdlib.h有什么区别?

时间:2010-05-24 22:32:19

标签: c++ std

编写C ++代码时,之间有任何区别:

#include <cstdlib>

#include <stdlib.h>

除了前者主要包含在std::名称空间中?

除了编码标准和样式之外还有其他任何理由可以使用其中一个吗?

3 个答案:

答案 0 :(得分:43)

第一个是C ++标头,第二个是C标头。由于第一个使用命名空间,这似乎更可取。

答案 1 :(得分:15)

不,除命名空间情况外,它们基本相同。

答案 2 :(得分:2)

  

除了编码标准和样式之外,还有其他理由要使用另一种吗?

是的。 stdlib.h已被弃用的事实是不使用它的一个很好的理由。实际上,它在1998年的第一个标准中就已经过时了。当然,它仍然存在于C ++ 14中,并且可能甚至存在于C ++ 17中(我无法使用C ++ 17标准),但是由于不建议使用,因此强烈建议您不要使用它。也许删除的风险不是很高,但是为什么在编写新代码时却如此容易避免,甚至还要冒风险呢?

来自C++14 standard

  

以下是不推荐使用的功能,其中不推荐使用的功能定义为:当前版本的规范       标准,但已被确定为要从以后的版本中删除的候选。

     

...

您应该有一个很强的论据来使用stdlib.h而不是cstdlib