解析C语言与C++的编译模型

2020-01-06 15:15:06王冬梅

而在C中,没有”类的捆绑”,实现起来就要简单多了,将该函数放在A.c中,函数不在A.h中声明。由A.c包含B.h,解除了A.h和B.h之间的关联,这也是C将数据和操作分离的优势之一。
最后,看看其它语言是如何避免这些”坑”的:
对于解释型语言,import的时候直接将对应模块的源文件解析一遍,而不是将文件包含进来;
对于编译型语言,编译后的目标文件中包含了足够的元数据,不需要读取源文件(也就没有头文件一说了);
它们都避免了定义和声明不一致的问题,并且在这些语言里面,定义和声明是一体的。import机制可以确保只到处必要的名字符号,不会有多余的符号加进来。



注:相关教程知识阅读请移步到C++教程频道。