【C++】Dev-C++的“万能头文件”真的万能吗?

     2020-10-31           浏览数:

一般情况下老师在教授c/c++课程时,都会讲到其中的头文件的作用,没有写头文件的程序基本都不会成功运行得到想要的结果,因为每个程序基本都避免不了一定的输入与输出,而输入与输出却在头文件#include/#include中。

在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。

在以后更深层次的学习中,会发现c++背后有一个很强大的库,里面藏着我们需要的应有尽有的一些便捷函数,大量的库函数扑面而来,随之产生了一个很令人头疼的问题,每一种类型的函数的使用都需要有一个头文件作为前提,函数名和用法背半天先不说,还要记头文件,瞬间哭晕在厕所!

那有没有一个万能的头文件可以解决这一切的烦恼?

1、万能头文件

1.png

就是它,是不是很眼熟,似曾相识在以前别人的哪里的博客题解中看到过,当你在你的程序前面写下这行头文件,简直开挂人生有没有?

目前这个万能头文件包括了c++中所有的头文件:

2.png

……

从此再也不用记上面这些种种的头文件!

但是,鉴于老师教学时不讲这个万能头文件,还是有原因的,用到哪里的函数你可以清晰地知道它是在哪个头文件中包括的,对学习时捋清知识点是有必要的

2、优点与缺点

  优点如下:

    1.在竞赛中节约时间

    2.减少了编写所有必要头文件的工作量

    3.对于使用的每个函数,不用记住GNU C++的所有STL

  缺点如下:

    1.不属于GNU C++库的标准头文件,在部分情况下可能会失败

    2.使用它将包含许多不必要的东西,并增加编译时间

    3.这个头文件不是C++标准的一部分,因此是不可移植的,应该避免

    4.编译器每次编译翻译单元时都必须实际读取和分析每个包含的头文件,应该减少这类头文件的使用

3、兼容性问题

目前POJ还不支持(G++、C++都不支持)。HDU部分支持(G++支持,C++不支持)。

其他国外的oj,还有台湾地区的oj都支持,CF,Topcoder也都支持。

当然,其实这是一个偷懒的写法,但是会降低编译速度(为何会降低编译速度,等到以后学编译原理再来填坑吧)。

笔试平台可以使用,方便,VS中并不支持,一般G++ 4.4以上就支持这个头文件了。当然,私下自己学习就不要去使用了,对你的自主学习一点都没有好处。

4、完整代码 

C++中bits_stdc++_01.gifC++中bits_stdc++_02.gifC++中bits_stdc++_03.gif

沁中NOIP.gif

xxfseo.com