C++ 代码运行时缺少 header ,为什么?

标签 c++ header std

我刚刚意识到我应该包括 #include<cstdlib> abs() 要求对于 abs()功能。

 #include<iostream>
    using namespace std;
    int main()
    {
        int result;
        result = abs(-10);
        cout << result << "\n";
        return 0;

    }

为什么即使我忘记了重要的 header (#include<cstdlib>),这段代码仍然有效?

最佳答案

那是因为 iostream 间接包含了 abs() 的定义。它是标准允许的,但不应依赖它,因为它依赖于实现(即您的代码可能无法在其他一些编译器上编译)。

关于C++ 代码运行时缺少 header ,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1951735/

相关文章:

c++ - 是否有任何类似于 Windows 上的 GetTickCount() 的 C++ 标准类/函数?

c++ - 如何在函数调用(不是作为工具提示而是实际编写)或声明中显示函数参数名称

java - java 客户端的 http header 的 useragent 值应该是什么

android - 管理 Android 应用程序 cookie

c++ - 单独文件中命名空间中的函数模板可以正常编译,但链接器找不到它

C++ std::cout 未考虑的输出

c++ - 在 Qt Quick 2 中使用 QVTKOpenGLWidget

c++ - 如何正确声明变量

c++ - 如何阻止命令接受输入?

c++ - 声明会影响 std 命名空间吗?