【发布时间】:2021-08-30 19:35:22
【问题描述】:
我正在学习 C,来自脚本语言背景,它非常有趣且令人困惑。
我是如何得到这个问题的一个简短的故事:
起初我很困惑为什么我不能在另一个源文件中包含源 (.c) 文件,然后我发现函数声明重复。然后我发现了头文件(.h)并且很困惑,为什么我必须在一个文件中声明一个函数然后在另一个文件中定义,然后如果有变化我必须去编辑2个文件,所以我开始在头文件中定义函数文件。然后我发现#ifndef 不能跨单独的源文件工作,所以这是我还找不到答案的问题:
为什么我什至必须使用单独的源文件?为什么我不能只拥有 1 个源文件并将所有其他代码/函数定义放在头文件中,这样我将定义一次并在最终构建中包含一次?
现在不要误会我的意思,我不认为我会开始一场革命,我只是在寻找为什么这不是它的工作原理的答案。
【问题讨论】:
-
您不必必须使用单独的文件。一些编译器通过将许多源文件集中在一起并将它们编译成一个块来实现性能提升。但在所有其他条件相同的情况下,较小的文件比较大的文件更易于人类阅读。我担心这篇文章可能会吸引主要基于意见的答案,但现在我很想看看人们可能要说什么。
标签: c include header-files