cstdlib和stdlib.h有什么区别?

编写C ++代码时,两者之间有什么区别:

#include <cstdlib>

#include <stdlib.h>

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

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

Free Wildebeest asked 2020-06-19T19:36:00Z
3个解决方案
45 votes

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

Brendan Long answered 2020-06-19T19:36:14Z
15 votes

不,除了名称空间情况外,它们本质上是相同的。

Jerry Coffin answered 2020-06-19T19:36:34Z
3 votes

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

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

从C ++ 14标准:

这些是不推荐使用的功能,其中不推荐使用的定义为:当前版本的规范 标准,但已被确定可从将来的版本中删除。

...

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

klutt answered 2020-06-19T19:37:17Z
translate from https://stackoverflow.com:/questions/2900785/whats-the-difference-between-cstdlib-and-stdlib-h