我想使用cstdio
和cstdlib
之类的C库,我可以同时使用它们:
int i = atoi("123");
或
int i = std::atoi("123");
两者都很好。我应该使用哪一个?它们是等价的吗?
答案 0 :(得分:7)
为了便于携带,您应该使用std
版本,原因有两个:
atoi
,但数学函数)在C ++中有额外的重载。至少有一个流行的库将C重载转储到全局命名空间,而不是C ++重载。这意味着如果您更改实现,您的代码可能会以奇怪和令人愤怒的方式改变其行为。