没有陈述的函数

时间:2012-02-18 15:15:11

标签: c++

定义没有语句的函数的目的是什么? 我有一个C ++文件,其中包含一个没有语句定义的函数列表,并且它们不会在脚本中的任何其他位置使用。这是否意味着它们是在其他文件中定义的?

2 个答案:

答案 0 :(得分:4)

  

定义没有语句的函数的目的是什么?

这句话毫无意义。但我怀疑你指的是函数声明语句,它们也不包含所述函数的定义(或实现)。

void foo();  // Declaration (may be used as long as definition is linked)

  

这是否意味着它们是在其他文件中定义的?

而且,是的,通常可以在其他翻译单元中找到定义,链接以创建最终的可执行文件。

void foo() { // Defining declaration (or just "definition")
   /* ... */
}

应在your C++ book中详细解释典型的C ++构建过程。

答案 1 :(得分:1)

你所拥有的是功能定义 可能这些只是在开发过程中实施的存根。

清除声明和定义之间的歧义:

功能声明:

void doSomething();

功能定义:

void doSomething()
{

}

通常,函数声明位于Header(.h或.hpp)文件中,而定义位于源(.cpp)文件中。

该函数的声明充当函数用户的接口,它们包含标题,以便它们可以使用该函数。
请注意,函数原型及其声明已确定&在设计阶段期间修复,而实际功能实现在开发阶段完成。
在并行开发项目中,通常多个团队将处理需要在他们自己之间交换数据的不同功能,一旦设计阶段结束,这些团队之间交换接口,然后两个团队并行工作以开发他们自己的功能,在这个开发阶段,有时为了避免链接错误,空白函数定义被用作项目中的存根。