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

C语言中,是否可以调用其它文件的函数?,第1张

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下,可建立一个工程,将两个文件添加到该工程中,编译,运行即可

以Linux下的gcc为例:从好皮孙C程序主握纤函数main.c中调用另一个文件fun.c里函数的方法1.直接编译 gcc main.c fun.c2.在main.c文件内容开头添加 #include “fun.c” 然后 gcc main.c3.在main.c 文件内容友链开头添加 #include “fun.h” 然后 gcc main.c fun.c4.在main.c 文件内容开头添加 #include <fun.h>(此时fun是库函数) 然后gcc main.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的话就是调用函数的功能


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

原文地址:https://54852.com/yw/12476156.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存