gpt4 book ai didi

c++ - 重温 makefile 和 header 依赖项

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:56 27 4
gpt4 key购买 nike

这个问题是从理想主义的角度出发的。//前向声明

我一直在学习 makefile 的基础知识,我发现自己想知道被问到的同样问题 here关于 header 依赖项。从实际的角度来看,我很高兴有解决 header 依赖性问题的解决方案。然而,仔细考虑这个问题,我发现自己在问为什么 header 依赖项会排他性地影响编译单元。假设(参见前向声明)定义包含在头文件中,实现在源单元中定义,是否有任何理由认为修改头文件而不修改相应的源文件是值得的?如果不是,为什么重新编译相关源单元甚至很重要,因为单独的定义修改不会影响程序执行?这只是一个尽早发现接口(interface)定义更改错误的问题吗?

最佳答案

(准确地说,声明包含在头文件中,定义(即实现)包含在源文件中,但这只是术语。)

"Is there any reason that modification to a header file is merited without modification to the respective source file?"

是的。例如,将成员从 public 更改为 private。此外,多个源文件可以 #include 一个给定的头文件,因此对头文件的更改可能需要更改其中一个而不是另一个。例如,在类中添加/删除/重命名数据成员可能不需要对类实现进行任何更改,但仍需要更改使用该类的其他源代码。

即使源文件根本没有改变,如果头文件发生改变,逻辑上仍然有必要重新编译它。例如,添加/删除数据成员会改变类的大小,这意味着任何使用该类实例的代码都必须调整为其分配的内存量。

关于c++ - 重温 makefile 和 header 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15864412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com