关于库和头文件:
EasyX是一个库,包括很多头文件和源文件。当VS2012使用EasyX功能的时候,引入的#include <XXX.h>是其中一个头文件,当配合里面源文件的程序后,可以使用。
而库的本质是一大堆相关的函数和类的定义的集合。可以封装好,作为一个整体给别人用。
关于C++(C)的源文件和头文件的区别和联系:
头文件的功能:其实是把源文件里面的函数的声明,变量的声明放在.h文件里。可能有几十句或者几百句。
每次调用#include <XXX.h>这样的语句时,相当于把这些声明等复制一遍放在.cpp文件里。换句话说,头文件是对文本的简单拷贝,但是自己不用编译。
而每个.cpp文件里面可以调用这句话,相当于把几百个语句复制一遍。
所以头文件里面一般不能定义,因为如果每个cpp文件里面都用就调用了好多遍定义,这是不合法的。
当然,特例可能在于inline(内联函数),还有头文件里面类的定义的一些特殊情形。