<分区>
我想使用 C 库,例如 cstdio
和 cstdlib
,我可以同时使用它们:
int i = atoi("123");
或
int i = std::atoi("123");
两者都很好。我应该使用哪一个?它们等价吗?
标签 c++
<分区>
我想使用 C 库,例如 cstdio
和 cstdlib
,我可以同时使用它们:
int i = atoi("123");
或
int i = std::atoi("123");
两者都很好。我应该使用哪一个?它们等价吗?
最佳答案
为了可移植性,您应该使用 std
版本,原因有二:
atoi
,而是数学函数,例如)在 C++ 中有额外的重载。至少有一个流行的库将 C 重载转储到全局命名空间中,而不是 C++ 重载。这意味着如果您更改实现,您的代码可能会以奇怪且令人恼火的方式改变其行为。关于c++ - 我应该使用 std::old_c_functions 还是只使用 old_c_functions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21979356/