继承了大量遗留的C代码,并且正在将其移植到使用GCC(g ++)的Linux上进行编译。因为我们将来会使用C ++,而且我正在修复" custom"无论如何库头文件(和编译器警告),更新旧C头以使用较新的C ++样式是安全的。
像
这样的东西#include <cstdlib>
而不是
#include <stdlib.h>
据我所知,两者之间的唯一区别是cstdlib在std::
命名空间中有内容。
有什么事情会让这个坏主意吗?
答案 0 :(得分:1)
除了命名空间之外,它们(在大多数系统上)完全相同。
答案 1 :(得分:1)
您的代码可能会以非常微妙的方式发生变化,因为C ++标准头文件使用重载,其中C使用不同的名称。这最有可能导致cmath
出现问题。
stdlib.h
不会去任何地方,所以请随时继续使用它。
例如,比较:
#include <iostream>
using namespace std;
#include <stdlib.h>
#include <math.h>
int main(void)
{
double x = -2;
cout << (3/abs(x)) << endl;
return 0;
}