不写两次函数头的方法?

mee*_*mee 9 c c++ header

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

我不太了解C/C++,Delphi和D.我假设在Delphi或D中,你只需编写一个函数所需的参数,然后就可以在不同的项目中使用该函数.在C中,你需要在头文件中再次使用函数声明*,对吧?有没有一个好的工具可以从C源创建头文件?我有一个,但它不是预处理器意识而且不是很严格.我有一些非常糟糕的宏观技术.

我正在寻找用C/C++编程的方法,如http://www.digitalmars.com/d/1.0/pretod.html所述

ere*_*eOn 11

Imho,从源代码生成标题是一个坏主意,并且是不切实际的.

标题可以包含更多只是函数名称和参数的信息.

这里有些例子:

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

您通常编写标题,然后在相应的源文件中编写实现.

我认为反过来是反直觉的,不符合C或的精神C++.

唯一的例外是可以看到的是静态函数.静态函数仅出现在其源文件(.c.cpp)中,并且(显然)不能在其他地方使用.

虽然我同意这是很烦的方法/函数的源文件的头部定义复制,你也许可以配置你的代码编辑器来缓解这一点.我使用Vim和快速脚本帮助了我很多.我想其他大多数编辑都有类似的解决方案.

无论如何,虽然这看起来很烦人,但请记住它也提供了更大的灵活性.你可以发布你的头文件(.h,.hpp或其他),然后透明地更改源文件执行之后.

而且,仅仅提到它,就没有这样的东西C/C++:有存在C和存在C++; 那些是不同的语言(确实分享很多,但仍然).

  • 关于标题中的额外信息的好处 - 可能想要提及成员函数的默认参数只能在标题中指定,并且大多数模板代码仅存在于标题中. (2认同)