当前位置:首页 » 编程语言 » c语言跨文件调用函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言跨文件调用函数

发布时间: 2023-01-06 09:07:51

c语言中,其他文件可否调用文件中的static函数

不能,C语言中的static函数,内部函数和外部函数,函数一旦定义后就可被其它函数调用。

⑵ C语言 如何在一个文件中调用另一个文件的函数 用头文件

file1.c 头文件为file1.h
file2.c 头文件为file2.h
比如file2.c要调用file1.c里的一个函数
首先file2.c里要包含file1.h头文件(file1.h里有file1.c的函数申明)
然后file2.c文件里要有file1.c里的外部函数申明,用extern关键字申明
然后就可以直接file2.c里面调用file1.c里的函数了

我在单片机里是这样弄的完全没问题,51,avr,pic都可以

⑶ c语言调用其他文件的函数怎么编译

调用函数库的话用#include<XXX.h>或者#include"XXX.h"区别是你库文件放在同一个文件夹还是在IDE的安装目录下面,如果你库文件在你工程文件夹里面用#include<XXX.h>,否则用#include"XXX.h"

如果你说自己写库的话是需要两个宏命令,#ifndef_XXX_H#define_XXX_H,然后你函数名用extern表示

如果你说编译的话,你应该说的是编译原理吧,你可以反汇编一下一个编译好的程序,如果该处编译了一个其他函数库的函数,你可以看到程序把参数PUSH到内存后CALL或者LCALL了一个这个函数的地址,这就完成了汇编中调用函数的部分,我记得X86里面CALL的机器码是E8H吧,有兴趣的话可以自己用反汇编看一下

这个CALL的话就是调用函数的功能

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

当然可以啦。
举个例子吧:两个文件 main.c function.c
我们在function.c 中写一个函数 func();
与此同时,我们需要写一个.h文件来声明这个函数,即function.h
// 以下是function.h 的内容
#ifndef __FUNCTION_H__
#define __FUNCTION_H__

void func();
#endif

// 以下是function.c 的内容
#include "function.h"

void func()
{
// do something

}

这样一来,我们想要在另外一个文件,也就是main.c 中调用这个函数的时候,只需要包含它对应的头文件,就可以直接调用了。
// 以下是main.c 的内容
#include "stdio.h"
#include "function.h"

int main()
{
func();

return 0;
}

⑸ C语言中,是否可以调用其它文件的函数

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

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

当然可以啦。x0dx0a举个例子吧:两个文件 main.c function.cx0dx0a我们在function.c 中写一个函数 func();x0dx0a与此同时,我们需要写一个.h文件来声明这个函数,即function.hx0dx0a// 以下是function.h 的内容x0dx0a#ifndef __FUNCTION_H__x0dx0a#define __FUNCTION_H__x0dx0ax0dx0avoid func();x0dx0a#endifx0dx0ax0dx0a// 以下是function.c 的内容x0dx0a#include "function.h"x0dx0ax0dx0avoid func()x0dx0a{x0dx0a // do somethingx0dx0ax0dx0a}x0dx0ax0dx0a这样一来,我们想要在另外一个文件,也就是main.c 中调用这个函数的时候,只需要包含它对应的头文件,就可以直接调用了。x0dx0a// 以下是main.c 的内容x0dx0a#include "stdio.h"x0dx0a#include "function.h"x0dx0ax0dx0aint main()x0dx0a{x0dx0a func();x0dx0ax0dx0a return 0;x0dx0a}

⑺ C语言中 多个源文件之间函数如何调用

首先要建立一个头文件,以.h保存
这样
#include <stdio.h>
typedef struct {
char name[100][60];
char number[100][8];
int mon[100],day[100];
char sex[100];
double height[100];
}inf;
int input(inf *x ,int i);
int output(inf *y ,int h);

当然要有个主函数.
#include "inout.h"
int main(void)
{
int n;
inf id;
do{
printf("*********n");
scanf("%d",&n);
}while(n>100);
input(&id,n);
output(&id,n);
return(0);
}

然后 这个头文件有两个函数.这两个函数,以.c的格式保存.
#include <stdio.h>
#include "inout.h"
int input(inf *x,int i)
{
........
}
#include <stdio.h>
#include "inout.h"
int output(inf *y ,int h)
{
....
}
主函数来负责调用,别的源文件.但是,要有一定要有个头文件.
就相当说, 站长(主函数)要控制各个列车(多个源文件).需要通过调度台(头文件)
这是我的理解,我也是刚学.希望大家指正
编译的时候,要分别编译,先要把非主函数的源文件便宜成obj格式.
我的编译器是:cl /c 源文件名.c (cygwin中是 gcc -c 源文件名.c)
最后和主函数结合.
cl main.c 源文件.obj
cygwin中是 gcc -o main main.c 源文件.o
不知道 我说的够不够明白

⑻ C语言不同文件中的函数调用

从描述来看是可以的。你的函数有没有用static修饰?或者把编译的错误提示拿出来看看。