一般来说,头文件提供接口,源文件提供实现。但是有些实现比较简单的,也可以直接写在头文件里,这样头文件接口实现一起提供。
在编译时,源文件里的实现会被编译成临时文件,运行时刻程序找到头文件里的接口,根据接口找到这些临时文件,来调用它们这些实现。
从知识产权保护的角度来看:
头文件,是结构、函数的声明,可以由一家公司提供给其他公司,
源文件是函数的实现,它被编译成obj文件或lib文件,提供出去
这样以来,别人就知道你是怎么实现的,保护了你的知识产权啊
那函数的具体实现从安全的角度来讲是最好放在源文件,而头文件就只是做一个定义吗?