首页 > 后端开发 > C++ > 正文

C 定义应该始终放在头文件中吗?

DDD
发布: 2024-11-26 08:09:14
原创
853 人浏览过

Should C   Definitions Always Be Placed in Header Files?

C 头文件:定义放置

您的同事关于所有 C 声明和定义应放置在头文件中的断言是没有根据的。无论是历史上还是现在,C 中的常见做法仍然是将代码定义分离到 .cpp 文件中并在头文件中声明。

定义分离的原因

  • 控制编译时间:编译标头中的所有代码会显着增加编译时间,尤其是当大量文件包含相同的标题。这对于大型项目来说尤其成问题。
  • 避免循环对象关系:当代码放置在标头中时,可能会导致循环对象依赖关系,这可能很难解决。
  • 全局对象的有限范围:由于存在多个定义的风险,仅标头代码不能包含简单的全局对象当包含在多个源文件中时。

例外:模板

此规则的显着例外是模板。像 Boost 这样的现代 C 库广泛使用模板,这需要在标头中进行定义以允许内联优化。然而,这种做法应该仅限于模板。

仅标头代码的缺点

虽然仅标头代码对于模板来说很方便,但它有几个缺点:

  • 增加编译时间,使得开发和重构较慢。
  • 功能有限,因为某些功能(例如全局对象)无法在仅标头代码中实现。
  • 潜在的重新编译问题,因为更改需要重新编译整个文件

结论

尽管你的同事声称,将定义分离到 .cpp 文件中并在头文件中声明仍然是 C 中维护的首选方法代码组织、优化编译时间并避免潜在的陷阱。

以上是C 定义应该始终放在头文件中吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板