c++ - 关于 C++ 头文件包含的基本问题?

标签 c++ header-files

以下 3 个程序之间有什么区别? 是头文件还是C++标准库?

1.

#include<iostream>
using namespace std;

int main()
{
        return 0;
}

2.

#include<iostream>

int main()
{
        return 0;
}

3.

#include<iostream.h>

int main()
{
        return 0;
}

提前致谢。

最佳答案

就生成的程序而言,差异为零 - 因为 iostream 中没有任何内容库被程序引用,任何智能编译器都不会编译该库。

当你#include <iostream> ,您将包含带有 iostream 声明的头文件标准库。使用 #include <iostream.h>本质上与 #include <iostream> 相同, 除了它在全局命名空间内定义所有库的名称,而不是在 std:: 中- 它用于与使用 iostream 原始版本的程序反向兼容没有删除 .h . (<iostream.h> 版本通常也不支持宽字符,但只支持标准的 char 。)

using namespace std;意味着当前文件中名称引用的默认 namespace 将为 std ,这是大多数标准库函数使用的命名空间。虽然这意味着您不必为所有标准库调用添加前缀 std:: ,这也意味着您必须小心不要定义与标准库名称重叠的任何内容。

关于c++ - 关于 C++ 头文件包含的基本问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2652990/

相关文章:

c++ - 如何实现与 std::map 一起使用的自定义分配器?

c++ - fatal error C1014 : too many include files : depth = 1024

c - 头文件中的函数如何链接到 .c 文件?

c++ - 如何检查 std 字符串中的位置是否存在? (c++)

c++ - 包含 NSS 头文件的问题

c++ - c++ : linker command failed 中头文件的问题

c - 为什么要包含头文件? #include 是如何工作的?

c++ openssl加密有时会失败

c++ - Objective-C block 、C++ 变量和异步代码

c++ - 为什么优先级队列实现为二叉堆?