cstdlib和stdlib.h有什么区别?
编写C ++代码时,两者之间有什么区别:
#include <cstdlib>
和
#include <stdlib.h>
除了前者主要包含在std::
命名空间中?
除了编码标准和样式之外,是否还有其他理由要使用一种?
Free Wildebeest asked 2020-06-19T19:36:00Z
3个解决方案
45 votes
第一个是C ++标头,第二个是C标头。 由于第一个使用名称空间,因此似乎更可取。
15 votes
不,除了名称空间情况外,它们本质上是相同的。
3 votes
除了编码标准和样式之外,是否还有其他理由要使用一种?
是。 不赞成使用stdlib.h
的事实是不使用它的一个很好的理由。 实际上,它在1998年的第一个标准中就已过时。当然,它仍然存在于C ++ 14中,甚至可能存在于C ++ 17中(我无法使用C ++ 17标准),但是 由于不建议使用,因此强烈建议您不要使用它。 也许删除的风险不是很高,但是为什么在编写新代码时却如此容易避免,甚至还要冒风险呢?
从C ++ 14标准:
这些是不推荐使用的功能,其中不推荐使用的定义为:当前版本的规范 标准,但已被确定可从将来的版本中删除。
...
您应该有一个很强的论据来使用stdlib.h
而不是cstdlib