将函数分离到依赖于不在标题内的另一个函数的单独标题?

时间:2010-06-02 16:58:06

标签: c function-pointers

我有几个C脚本都具有相同的格式(函数),但偶尔会有几个函数中的实际代码。我试图将一个函数分成一个外部头文件,但问题是:

int FunctionImExtracting()
{
    //some code
    FunctionThatCannotBeExtractedButTheFunctionSignatureWillAlwaysRemainTheSame()
    //more code.
};

我有一种感觉,功能指针将成为我的朋友,但我不确定如何。如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

您不(通常希望)将函数本身放入标题中 - 您只想在函数头中放置函数声明,因此其他文件可以包含标题并能够调用该函数:

//myfunc.h:
#ifndef MY_HEADER_H_INCLUDED
int FunctionImExtracting(void);
#define MY_HEADER_H_INCLUDED
#endif


// myfunc.c:
#include "theirheader.h"
#include "myfunc.h"

int FunctionImExtracting() { 
  // as in question
}

答案 1 :(得分:0)

您需要一个声明为FunctionThatCannotBeExtractedButTheFunctionSignatureWillAlwaysRemainTheSame()的头文件。然后,在要导出的文件中,您需要包含此标头。 FunctionThatCannotBeExtractedButTheFunctionSignatureWillAlwaysRemainTheSame()的实际定义仍然可以在导出FunctionImExtracting()的文件中。

我的问题是否正确?