c++ - 为什么将函数声明和定义放在单独的文件中?

标签 c++ syntax header declaration definition

在 Codeacademy 的函数类(class)中,如果您要在程序中调用函数,他们会教您使用三个文件:

  • int main() 文件,我通过反复试验发现它是 C++ 程序的程序部分不可或缺的一部分(我猜......), .cpp 文件扩展名

  • DECLARING 函数的头文件,文件扩展名为 .hpp。

  • 带有函数 DEFINITIONS 的单独文件,文件扩展名为 .cpp

在头文件中单独声明和定义函数并简单地将它们包含在 int main() 之上是否可行?对我来说,拥有单独的声明和定义文件似乎会让大型项目中的问题变得困惑。

最佳答案

在大型项目中,您通常只需要类型和函数声明,而不是定义。例如在其他头文件中。如果所有定义都在 header 中,那么包含多个其他 header 及其传递包含的组合结果将导致巨大编译单元。这显着会影响编译时间,因为编译器需要处理的代码量会激增到超出所需的数量级。它还会影响链接时间,因为链接器需要做更多工作来丢弃更多目标文件中包含的重复项。

除非所有内容都标记为“内联”,否则您还很容易遇到 ODR(单一定义规则)问题。

关于c++ - 为什么将函数声明和定义放在单独的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62233424/

相关文章:

c++ - 双向链表C++删除元素

c++ - 如何在 C++ 类中创建常量数组和计算常量值?

c# - SQL Server 加密和 nhibernate

c++ - 我如何控制 Bison 将 C++ 代码放在哪里?

html - 每次我想使用它时都必须重写 html header 吗?

c++ - 从父调用子静态函数?

c++ - 将 binder1st 与自定义仿函数一起使用

带有迭代器的 Javascript for 循环在 i 的中间和递减运算符的左侧?

html - 页眉和页脚背景不会拉伸(stretch)页面的整个宽度

c++ - 在目录树中查找文件的最快方法是什么