头文件

#include<math.h>
  1. C/C++文件通常包括头文件和定义文件。头文件(.h文件)保存声明,定义文件/定义文件(.c程序文件)保存程序的实现代码。
  2. 头文件类似于接口文件,是应用程序和函数库之间的桥梁和纽带。
  3. #include的工作是在预编译(预处理)阶段完成,仅仅是将头文件中的内容copy到该源文件中。
  4. 头文件中仅保存符号(变量和函数)的声明,不能保存定义。因为如果保存定义,该头文件被多个源文件include时,就会存在重复定义的问题了。即,只能在头文件中写形如:extern int a;和void f();的句子。有以下三种例外:
    1. const对象、static对象定义。const对象默认没有extern声明,只在当前文件中有效,所以不会出现重复定义的问题。
    2. inline函数定义。inline函数在编译时需要展开,所以编译时需要看到完整定义。C++规定,内联函数可以在程序中定义多次,只要在一个.cpp文件中只出现一次,并且所有.cpp文件中,该内联函数定义一致,就能通过编译。
    3. 类(class)定义。同inline函数,在编译时,只有类定义完全可见时,编译器才知道这个类的对象该如何布局。类定义中包括数据成员和函数成员。数据成员在对象创建时才会被定义(分配空间),函数成员则一开始就需要定义。函数成员实现可以放在另一个.cpp文件中,也可以直接放到类定义中,此时默认为inline函数。
  5. #include<>包含编译器自带头文件,从PATH所设路径查找。#include""包含用户自定义头文件,从用户当前目录(编译选项指定)查找,找不到从PATH找。
原文地址:https://www.cnblogs.com/hf-cherish/p/4463775.html