关于分离式编译:声明、定义与头文件
最近在看C++ primer学习C++,关于其中的声明与定义之间的关系与区别不是很清楚(可能是因为用多了python吧)。于是打算写篇小文记录一下个人对分离式编译的理解。
首先是定义,C++primer中对定义(definition)的解释是:创建与名字相关联的实体;而声明呢,C++primer中对声明(declaration)的解释是:使得名字为程序所知。在C++中,任何变量/对象都只能被定义一次,但是在文件中使用变量/对象则需要在该文件中声明。
然后是头文件,在python编程里并没有头文件这个东西的存在,看了别人的介绍之后,感觉头文件类似一个源文件共用对象的目录。头文件中通常会存放全局变量的声明、函数的声明、宏定义等等。这样我们编写程序的时候可以避免重复编辑。在实际中可以通过头文件实现在一个源文件中使用其他源文件的函数,极大降低了程序的冗余程度。