鱼C论坛

 找回密码
 立即注册

同一个C语言工程不同C文件之间的函数互相调用问题

已有 845 次阅读2017-12-29 08:27 |个人分类:C/C++杂

共有3种方法。
方法一:

首先,新建一个头文件。例如,定义一个求和的功能的函数:

function.h

int add(int m, int n)
{
return m + n;
}

 

然后,新建主函数main.c

#include <stdio.h>
#include "function.h"

int main( )
{
int m = 1, n = 2;
printf("%d",add(m,n));

}


方法二:

首先,新建一个函数fun.c(不是fun.h

int add(int a, int b)
{
return a + b;
}

然后,新建主函数main.c

#include <stdio.h>
extern int add(int a, int b); //调用函数的过程
int main(void)
{
int a = 1, b = 2;
printf("%d",add(a,b));

return 0;
}



方法三:

关于(一)和(二)的方法的差异很显而易见,而当一个工程我们需要自定义多个函数的时候,就不能像(一)那样将每个函数都写成.h文件,然后在主函数的开头处声明。

然而,我们可以定义一个function.h文件来声明这些函数:

#ifndef __FUNCTION_H__
#define __FUNCTION_H__
   int fun(int,int);
   int times(int,int);
#endif

 

接下来,在同一个function.c文件中自定义这两个函数:

#include "function.h"
int fun(int a,int b)
{
  return a+b;
}

int times(int a,int b)
{
  return a*b;
}

 

最后,如果要在另外一个文件中,即main.c中调用这个函数,只需在程序开头包含相应的头文件即可。

# include "stdio.h"
# include "function.h"   //包含的头文件
int main()
{
int a=2;
int b=4;
        printf( "%d\n",fun(a,b));
        printf( "%d\n",times(a,b));
        return 0;
}

 

总结:这样的好处就是在同一个头文件中能包含多个函数,在调用包含的函数时,直接可以调用。不再像(二)方法那样,一个头文件中只含有一个函数。

 


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-1 23:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部