关于头文件引用这件事(新手教程,神犇勿进)

一、如何引用头文件?

#include<头文件名>

在头文件名这里写入头文件就好了。

二、万能头文件是什么?

万能头文件的样子长这样:bits/stdc++.h

顾名思义,万能头文件就是你引用了这个头文件之后就不用引用其他头文件,例如,在以下程序中:

#include<iostream>
#include<queue>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<map>
#include<string.h>
…………
…………
…………
…………
…………
…………

我们就需要一大大大大坨头文件,但我们只需要:

#include<bits/stdc++.h>
…………
…………
…………
…………
…………
…………

一个即可搞定。

三、万能头文件如何实现的?

这就要涉及到头文件的定义了。(对,你没听错,听起来高大上的头文件还可以自己定义)

这里拿DEV-C++为例:(如果没有可以转到:DEV-C++下载及使用保姆级指南-CSDN博客,这也是我的另一篇博客)

在DEV-C++界面的左上角找到文件,点击后找到新建,点击新建,点击项目

新建后在左侧边栏项目管理中右键刚刚新建的项目,点击“New File”

点击后会出现一个程序编辑框,点击上方的编译运行

弹出保存对话框后,将头文件命名为你想要的名字,例如“小明”,然后在点击保存类型下拉栏中的“header”文件类型,然后点击保存

关闭弹出来的对话框,你就可以在这里面定义头文件

一般格式为:

#ifndef XXXXXX_H
#define XXXXXX_H  



#endif

上述代码XXXX部分就是头文件名,用大写的英文字母。

在中间可以自定义函数,例如:

#include<bits/stdc++.h>
using namespace std;
#ifndef ZZ_H
#define ZZ_H 
int maxn(int a,int b,int c)//实际作用为找出三数中最大
{
	return max(max(a,b),c);
}
int midn(int a,int b,int c)//实际作用为找出三数中中间大小
{
	return min(max(a,b),c);
}
int minn(int a,int b,int c)//实际作用为找出三数中最小
{
	return min(min(a,b),c);
}

#endif

由上述代码可以得出,在你定义头文件时也可以在程序中引入其他头文件,例如万能头文件,其他C++自带头文件等。

同时也可以使用标准命名空间,这些代码需放在最前面。

#ifndef是用来判断这个头文件是否已经编译,提高效率。

#define是宏定义,在我的另一篇博客里有解释,这里不多赘述。

#endif是结束标志

在上述代码中,我定义了三个函数在zz.h头文件里,它们可以被实际使用

#include<bits/stdc++.h>
#include"zz.h"
using namespace std;
int main()
{
	cout<<maxn(5,9,2)<<endl<<midn(5,9,2)<<endl<<minn(5,9,2);
	return 0;
}

这段程序的执行结果将会是

2
5
9

再次说明一点,头文件的引用用include<>可以,用include""也可以,但习惯上用尖括号引用自带头文件,用引号引用自定义头文件,仅仅是习惯而已,并无区别

好了,现在回到万能头文件的定义,你猜到它是怎么定义的吗?

万能头文件其实就是在定义时定义了所有头文件

#ifndef _GLIBCXX_NO_ASSERT
#include <cassert>
#endif
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>

#if __cplusplus >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdalign>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#endif

// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>

#if __cplusplus >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#endif

需要注意的是,万能头文件定义了多次,是为了方便不同类型的C++语言,例如C++98和C++14,其中的判断条件也有些不同,这里不细讲。

点赞,收藏,关注,求求啦!!!!

如有疑问,私信作者,周末统一回复。

如有发现博客出现错误,敬请见谅(个人能力有限),私信作者,不胜感激!!

  • 34
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值