我是靠谱客的博主 火星上芹菜,这篇文章主要介绍#include和#include的区别,现在分享给大家,希望可以做个参考。

转载自 零度咖啡的博客,版权归原作者所有。
区别在于:如果用了isotream则一定要引入命名空间,即”using namespace std;如果用了iostream.h,则不能引入命名空间,否则会引起编译错误,提示找不到命名空间.
例程如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//情况一:使用<iostream>和命名空间 #include <iostream> using namespace std; int main() { cout<<"<iostream> need to use namespace std!n"; return 0; }

输出:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
<iostream> need to use namespace std! Press any key to continue
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//情况二:使用<iostream.h>,不引入命名空间 #include <iostream.h> //using namespace std; int main() { cout<<"<iostream> need to use namespace std!n"; return 0; }

输出:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
<iostream> need to use namespace std! Press any key to continue
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//情况三:使用<iostream.h>,引入命名空间,这时候编译出错 #include <iostream.h> using namespace std; int main() { cout<<"<iostream> need to use namespace std!n"; return 0; }

编译错误信息:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
error C2871: 'std' : does not exist or is not a namespace

从功能性的角度来讲,iostream包含了一系列模板化的I/O类,相反地 iostream.h只仅仅是支持字符流。另外,输入输出流的C++标准规范接口在一些微妙的细节上都已改进,因此,iostream和iostream.h在接口和执行上都是不同的。最后,iostream的各组成都是以STL的形式声明的,然而iostream.h的各组成都是声明成全局型的。
严格来说,不带h的用法是纯C++的标准用法,主要是配合STL库使用的。如果你的程序要使用C库,那么就要带.h。因此第一种和第二种写法,最大的区别在于你使用C模式还是纯C++模式。还有比如string.h是旧的C头文件,对应的是基于char*的字符串处理函数;string是包装了std的C++头文件,对应的是新的strng类;cstring是对应旧的C头文件的std版本。

最后

以上就是火星上芹菜最近收集整理的关于#include和#include的区别的全部内容,更多相关#include和#include内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部