头文件在编译中的作用?

Posted

技术标签:

【中文标题】头文件在编译中的作用?【英文标题】:The role of a header file in compilation? 【发布时间】:2014-01-13 13:02:56 【问题描述】:

我们在一篇练习论文中被问到一个问题“头文件在编译中的作用是什么?在这种情况下,头文件的作用是什么?”

头文件将包含任何可能包含在 .cpp 实现中的类的声明。我知道通过在实现或其他头文件中包含头文件,该代码可以在不知道其实现的情况下知道该类的所有可能成员。

通过 *** 进行了一些阅读后,一些人认为头文件可能会减慢编译速度 (Coding C++ (mostly) in header files vs .cpp files),虽然对头文件的更改需要完全重建所有实现,而对实现不需要完全重建头文件及其所有实现。

这些准确吗?有什么理由认为头文件对编译有益吗?它起什么作用?

非常感谢!

【问题讨论】:

搜索“预处理器”。 正确的实现和构建系统不需要完全重新编译 那么,头文件对编译有什么影响(如果有的话)? 【参考方案1】:

是的,虽然我会避免对代码文件使用术语实现 - 人们可能会认为您在谈论标题中类的实现,这可能会导致混淆。

此外,更改头文件不会导致您需要重新构建所有代码文件 - 只有那些包含(直接或以其他方式)所述头文件的代码文件。

哦,标头保护用于避免在给定编译单元中包含两次相同的文件(导致重新定义事物)。

【讨论】:

以上是关于头文件在编译中的作用?的主要内容,如果未能解决你的问题,请参考以下文章

extern和头文件到底有什么作用?

C++预编译头文件stdafx.h作用

c语言中graphics.h头文件添加了怎么不起作用???

linux c 编程 ------ 头文件及其作用

单片机c语言中常用的头文件有哪些?分别有啥作用啊?

Makefile 只修改了.h头文件,编译为什么不起作用?