1、.h头文件
头文件是扩展名为 .h
的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它。前面我们已经看过 stdio.h
头文件,它是编译器自带的头文件。引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这么做很容易出错,特别在程序是由多个源文件组成的时候。
一般把所有的常量、宏、系统全局变量和函数原型写在头文件中,在需要的时候随时引用这些头文件。
2、引用头文件
用预处理指令 #include
可以引用用户和系统头文件。
可以使用#include <file>
或 #include "file"
方式引用。
相关文档: C语言中#include <filename> 和 #include "filename"的区别
例如,
#ifndef GRAPHICS_H//作用:防止graphics.h被重复引用
#define GRAPHICS_H
#include<file>//引用标准库的头文件
//省略代码
#include"file"//引用非标准库的头文件
//省略代码
void Function1();//全局函数声明
//省略代码
inline();//inline函数的定义
//省略代码
classBox//作用:类结构声明
{
//省略代码
};
#endif
//有条件引用
/*
#if SYSTEM_1
# include "system_1.h"
#elif SYSTEM_2
# include "system_2.h"
#elif SYSTEM_3
...
#endif
//或者
//头文件比较多时,可以使用宏替换方式:
#define SYSTEM_H "system_1.h"
#include SYSTEM_H
*/
#include <iostream>
using namespace std;
#include <string.h>
int main()
{
/* 我的第一个 C 程序 */
printf("Hello, World! \n");
return 0;
}
注意:
1)有条件引用是要从多个不同的头文件中选择一个引用到程序中。
2)如果头文件比较多,使用#if条件比较麻烦,则可以使用宏替换的方式引用。
3、C++与C语言头文件的区别
上述介绍的头文件的内容C语言和C++其本差不多。下面看一下C++与C语言头文件的区别:
1)C语言的头文件都是以.h结尾,如stdio.h、math.h。
2)C++的头文件保留了C中的头文件风格,大部分c的头文件都可以在C++中使用,也可以自定义C类型头文件在C++中使用。
3)C语言的标准头文件在C++中去掉了.h后缀,添加了C前缀,如math.h改为cmath。
4)C++自身的头文件,不带后缀,如iostream,其最大的不同就是c++类型的头文件可以包含命名空间,而.h
后缀的则不行。