C语言中如何调用另一个源文件里的函数
2018-03-13 16:18
2581 查看
在开发大型项目时,我们常常需要将一份源码分成多个源文件来进行编写,这样可以方便后期的维护。下面就介绍如何从一个源文件里调用另一个源文件的函数。
在源文件A1.c中调用A2.c 中的函数有两种方法:
1.在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};。
在A1.c中:在文件前头增加一行:void A2();就可以了。
2.把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了。
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件调用。
怎样编写头文件
1.一个.h文件要 对应有一个.c文件,这样链接器就可以调用这个文件里的函数。比如a.h 和 a.c。
在.h文件中:
2.把相应的函数定义写在.c文件中。这里要强调一点:要加上#include ".h",这个一般作为一种工程规范。因为如果.c文件中的函数也需要调用同个.c中的其它函数,那么这个.c往往会include对应的.h,这样就不需要为声明和调用顺序而发愁了。比如头文件里进行了变量的声明,这个时候对应的.c文件是一定要加上这个头文件的。
3.再在其他的main.c文件开头添加#include "a.h"。
在源文件A1.c中调用A2.c 中的函数有两种方法:
1.在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};。
在A1.c中:在文件前头增加一行:void A2();就可以了。
2.把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了。
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件调用。
怎样编写头文件
1.一个.h文件要 对应有一个.c文件,这样链接器就可以调用这个文件里的函数。比如a.h 和 a.c。
在.h文件中:
#ifndef __A_H_ #define __A_H_ #include<stdio.h> void trans2(double B) ; double trans1() ; #endif
2.把相应的函数定义写在.c文件中。这里要强调一点:要加上#include ".h",这个一般作为一种工程规范。因为如果.c文件中的函数也需要调用同个.c中的其它函数,那么这个.c往往会include对应的.h,这样就不需要为声明和调用顺序而发愁了。比如头文件里进行了变量的声明,这个时候对应的.c文件是一定要加上这个头文件的。
3.再在其他的main.c文件开头添加#include "a.h"。
相关文章推荐
- 如何在c语言中源文件调用另一个源文件的函数
- C语言一个源文件如何调用另一个源文件里的函数
- 如何在c语言中调用一个函数,使其运行在NSRunLoop的线程中
- python 中,如何在一个函数中调用另一个函数返回的多个值中的一个?
- linux下C语言如何得到调用我的函数的文件名和行号
- c语言宏定义函数如何调用
- linux下C语言如何得到调用我的函数的文件名和行号
- 在JS中,一个自定义函数如何调用另一个自定义函数中的变量
- C语言如何跨文件调用函数定义中声明的变量
- wpf 如何在一个页面中调用另一个页面的函数
- objective-c开发iosapp如何实现一个页面通知另一个页面调用某函数?
- python 一个.py文件如何调用另一个.py文件中的类和函数
- python 如何调用另一个路径下py文件的函数
- 如何在一个可变参数函数中调用另一个可变参数函数
- objective-c开发iosapp如何实现一个页面通知另一个页面调用某函数?
- C++ mfc如何调用窗口类函数 一个类调用另一个类的成员变量/成员函数
- 如何在python中调用C语言中的函数
- C语言如何调用 memcpy 函数 实现内存拷贝
- 如何在C语言中调用C++编写的DLL中的函数
- c++如何一个文件如何调用在同一个工程下的另一个文件的函数