c语言能不能在一个文件中写一个函数,然后再另一个文件中调用?

c语言能不能在一个文件中写一个函数,然后再另一个文件中调用?,第1张

当然可以啦。\x0d\举个例子吧:两个文件 mainc functionc\x0d\我们在functionc 中写一个函数 func();\x0d\与此同时,我们需要写一个h文件来声明这个函数,即functionh\x0d\// 以下是functionh 的内容\x0d\#ifndef __FUNCTION_H__\x0d\#define __FUNCTION_H__\x0d\\x0d\void func();\x0d\#endif\x0d\\x0d\// 以下是functionc 的内容\x0d\#include "functionh"\x0d\\x0d\void func()\x0d\{\x0d\ // do something\x0d\\x0d\}\x0d\\x0d\这样一来,我们想要在另外一个文件,也就是mainc 中调用这个函数的时候,只需要包含它对应的头文件,就可以直接调用了。\x0d\// 以下是mainc 的内容\x0d\#include "stdioh"\x0d\#include "functionh"\x0d\\x0d\int main()\x0d\{\x0d\ func();\x0d\\x0d\ return 0;\x0d\}

1、首先建头文件是为了声明c文件中的函数,以及包括宏定义。建立头文件要有对应的c文件。

2、要写头文件首先要建一个h文件。

3、打开h文件,进行编辑。建立头文件是有一定步骤的。要用到#ifndef。。。#define。。。。#endif。这是为了避免重复定义。

4、#ifndef后面要写的是头文件名称的大写。例如:testh要写成__TEST_H__。前面与后面是两个下划线。字母用大写。

5、然后在define与endif中间声明函数名,记得写冒号。

6、然后在main文件中写上include这个头文件,就可以调用了。

7、最后编译,运行,就完成了。

C语言中,函数调用的一般形式为:

函数名(实际参数表)

对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

#include<stdioh>
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y)  // 函数首部
{  // {}中的语言为函数体
return x>y  x : y;  // 返回x和y中较大的一个数
}

扩展资料

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。

这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。

图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。

参考资料:

函数调用_百度百科

C语言可以在程序中调用其他文件中的函数。
在大型的程序软件开发中,为了代码的可读性,或多人同时进行代码开发,可以各写自己的源文件,然后,在编译时,将多个源文件链接到一起,就可以形成最终的目标程序。
各程序中的函数可以是共用的,参考代码如下:
//ac
#include <stdioh>
int funa( int n )
{
printf("n=%d\n", n );
return n2 ;
}
//mainc
#include <stdioh>
extern int funa(int); //声明funa为外部函数
void main()
{
int x=5,y;
y=funa(x);
printf("y=%d\n", y );
}
在linux下,编译方法为:gcc mainc ac -o test
在windows下,可建立一个工程,将两个文件添加到该工程中,编译,运行即可

1、外部函数extern时声明这个函数为外部函数,本文件不做定义,只调用,编译不会出错,但不能运行(没有函数实体)。如果想有运行结果就必须将函数实体包含进来,所以文件包含和extern是配合使用的。文件包含只需要包含h就是实体的头文件,但有些软件貌似不能识别头文件和c的关系,所以就只能包含c文件。
2、也就是说外部函数extern只是个声明,他告诉编译器我用到了一个外部函数,但如果该文件没有将函数实体包含进来,编译器是找不到的,依然是不能运行的,所以extern只是个声明,并没有做任何事,只是这样是没用的。include是包含一个文件,就是类似于该文件复制到此处(只是说类似,其实是个查找路径,让编译器去该路径查找函数)。

你需要包含到头文件,比如那个文件在d盘根目录,就这样写:
#include<d:\\1c>
然后下面就可以调用1c里面的函数了
-物联网校企联盟技术部


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12663585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存