gpt4 book ai didi

c++ - 不写两次函数头的方法?

转载 作者:可可西里 更新时间:2023-11-01 16:36:02 26 4
gpt4 key购买 nike

我有一个 C/C++ 问题,我可以在不同的目标文件或项目中重用函数而无需编写函数头两次吗? (一个用于定义函数,一个用于声明函数)

我对 C/C++、Delphi 和 D 知之甚少。我假设在 Delphi 或 D 中,您只需编写一次函数采用的参数,然后您就可以在不同的项目中使用该函数。在 C 语言中,您需要头文件中的函数声明*再次??,对吗?。有没有一个好的工具可以从 C 源代码创建头文件?我有一个,但它不是预处理器感知的,也不是很严格。而且我有一些效果很差的宏观技术。

我正在寻找用 C/C++ 编程的方法,就像这里描述的那样 http://www.digitalmars.com/d/1.0/pretod.html

最佳答案

恕我直言,从源代码生成 header 是个坏主意,而且不切实际。

标题可以包含更多信息,而不仅仅是函数名称和参数。

这里有一些例子:

  • C++ header 可以定义一个可能不需要源文件的抽象
  • 模板只能在头文件中定义
  • 默认参数仅在类定义中指定(因此在头文件中)

您通常先编写 header ,然后在相应的源文件中编写实现。

我认为反过来做是违反直觉的,不符合 CC++ 的精神。

唯一的异常(exception)是 static 函数。静态函数仅出现在其源文件(.c.cpp)中,不能(显然)在其他地方使用。

虽然我同意将方法/函数的 header 定义复制到源文件通常很烦人,但您可以配置代码编辑器来简化此操作。我使用 Vim,一个快速脚本在这方面帮了我很多。我想大多数其他编辑器都存在类似的解决方案。

无论如何,虽然这看起来很烦人,但请记住它也提供了更大的灵 active 。您可以分发头文件(.h.hpp 或其他),然后透明地更改源文件中的实现。

另外,顺便提一下,没有C/C++这样的东西:有C,也有C++;这些是不同的语言(它们确实有很多共同之处,但仍然如此)。

关于c++ - 不写两次函数头的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2913346/

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