首页 > 后端开发 > C++ > 将 C 定义放入头文件中真的是通用规范吗?

将 C 定义放入头文件中真的是通用规范吗?

Linda Hamilton
发布: 2024-11-23 20:53:15
原创
940 人浏览过

Is Putting C   Definitions in Header Files Truly the Universal Norm?

将 C 定义放在头文件中是通用规范吗?

一个人的编程风格决定了类声明存储在包含文件中,而定义则存储在包含文件中驻留在单独的 .cpp 文件中。这种方法符合 Loki 在“C 头文件,代码分离”一文中广为人知的答案中概述的原则。

但是,一位同事坚持认为 C 声明通常应包含同一头文件中的定义。他认为这是一种普遍采用的现代做法。

验证这种做法的普遍性

为了确定这种说法的有效性,让我们检查一下观察到的常见做法这行业。

回复

您同事的说法不正确。广泛的做法一直是并且仍然是将代码保留在 .cpp 文件(或其他指定的扩展名)中并将声明保留在标头中。

虽然将代码放在标头中偶尔会有好处,例如增强的编译器内联,由于代码在包含时的重复处理,它还可能导致编译时间延长。此外,当代码包含在标头中时,它可能会引入循环对象关系的复杂性。

总之,分离代码和声明的流行做法符合您的偏好,这与您同事的说法相反。

异常和说明

模板出现了一个值得注意的异常。像 boost 这样的现代库大量使用模板,并经常采用“仅标题”方法。然而,这是一个专门适用于模板的独特场景。

仅标头代码的缺点

考虑仅编写标头代码的缺点非常重要:

  • 编译时间延长,有关使用 Boost 减少编译时间的讨论证明了这一点Asio。
  • 某些元素,例如全局对象,如果不求助于单例或其他有问题的解决方案,就无法在仅标头的库中实现。
  • 增量编译的好处会丢失,导致重新编译时间过长甚至轻微

结论

分离声明和定义的传统做法仍然是 C 中的主导方法。虽然在某些特定情况下,仅标头代码可能会有所帮助,但了解其局限性并明智地使用它至关重要。声称普遍采用仅标头定义是没有根据的,建议保持分离代码和声明的既定实践。

以上是将 C 定义放入头文件中真的是通用规范吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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