C语言中如何引用其它C源文件中的函数?

作者&投稿:泊晓 (若有异议请与网页底部的电邮联系)
单片机C语言程序中,有多个.C源文件,main.c函数中调用那些.c源文件的函数应该怎样处理?~

①如果 fun.h 文件 已经正确声明了,那么main.c 只要 include "fun.h"就可以使用 fun.c 函数了。只怕是,fun.h 只有 声明,而没有 正确声明。正确的 声明,需要 条件编译 声明是 函数声明 还是 外部函数声明。
② fun.c 中可能有多个函数,而 main.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都可以

在源文件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。

2、把相应的函数定义写在.c文件中。这里要强调一点:要加上#include ".h",这个一般作为一种工程规范。因为如果.c文件中的函数也需要调用同个.c中的其它函数,那么这个.c往往会include对应的.h。比如头文件里进行了变量的声明,这个时候对应的.c文件是一定要加上这个头文件的。

3、再在其他的main.c文件开头添加#include "a.h"。



有两种方法:
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。在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中调用一样。

C语言中引用其它C源文件中的函数有几种方式:
1.需要在 使用此函数的源文件 中 包含被使用函数所在的源文件,并且保证被使用函数所在的源文件在工程的源文件目录中。
比如说要在a.c中使用func()函数,func()函数在func.c中定义,源文件路径为“d:/project/path/”,那么就需要在a.c中加上#include"func.c",并且将func.c拷贝到“d:/project/path/"下。
2.使用extern进行声明,表示函数在其他文件中定义了。
比如说要在a.c中使用func()函数,func()函数在func.c中定义,原型是原型是int func(int mu),在a.c的前面加上extern int func(int mu) ,并且将func.c放在a.c相同的路径下即可。

用#include "A2.c"
应该可以吧


c语言如何在一个cpp中使用另一个cpp的变量?
第一、要想跨文件使用同一个变量,该变量必须定义成全局变量 第二、在另外的文件引用文件外的全局变量,引用者必须用extern来声明变量。第三、必须在函数中去操作该变量 如:1.cpp:void func() ;int n ;int main(){ n=1;func() ;return 0;} 2.cpp include <iostream> extern int n;void ...

写作文引用古诗的格式
如果要其它作文我可以试试: 我的小伙伴 或 触景生情的文章。。。 注:姐才小学! 3. 教你在作文中如何引用诗句 (转) 教你在作文中如何引用诗句 草在古代诗人的笔下往往代表着诗人的感情,它可以表示生命力的旺盛,使人为它的坚强精神赞叹,如:“野火烧不尽,春风吹又生”;可以表示生机勃勃的春天,使人感受美好...

请举例说明,如何在C语言中引用函数
引用库函数只要定义了头文件就可以,比如引用库函数printf()和scanf():include<stdio.h> void main(){ printf("输出函数");scanf("输入函数");} 引用自己定义的函数一般需要先声明(如果引用位置在定义位置之后,就不需要声明可直接引用。例如:include<stdio.h> void main(){ void sum();\/*函数...

MFC中如何调用C语言文件
可以按照以下方式进行,实行时不分先后。一、调用函数部分。1 引入头文件。头文件在C语言中,负责声明函数,及定义相关数据结构等功能。要调用其它C文件中的函数,标准的做法是引用头文件。2 如果不存在头文件,需要自行编写,也可以在引用文件中自行声明函数。不过后一种并不正规。3 在声明或引用头文件...

为什么R语言中$表示引用,@表示引用呢?
是S3类的引用方式,@是S4类的引用方式。$比较常用,@比较少用。通常我们的data.frame, list. 向量等用$就可以。S4也有例如,有个维恩包Vennerable:S4类型,想取得里面IntersectionSets,信息必须用@符号。当一个函数里需要返回多个值(比如有变量,有向量,有矩阵)时,我们要用list,而不是return,...

请问c语言中引用怎样理解?
pt1.offset(2,2);pt1和pt2都具有(12,12)的值。引用必须在定义时马上被初始化,因为它必须是某个东西的同义词。你不能先定义一个引用后才 初始化它。例如下面语句是非法的:Point &pt3;pt3=pt1;2、引用的两个主要用途 作为函数参数以及从函数中返回左值。(1)引用参数 a、传递可变...

C语言如何引用背景图片
直接添加个图片控件,然后拉张图片进去就可以了阿 或这动态加载图片:HRESULT ShowPic(char *lpstrFile,HWND hWnd){HDC hDC_Temp=GetDC(hWnd);IPicture *pPic;IStream *pStm;BOOL bResult;HANDLE hFile=NULL;DWORD dwFileSize,dwByteRead;\/\/打开图形文件hFile=CreateFile(lpstrFile,GENERIC_READ,FILE_...

引用是什么
引用可分为明引暗引两种。明引指直接引用原文,并加上引号,或者是只引用原文大意,不加引号,但是都注明原文的出处。暗引指不说明引文出处,而将其编织在自己的话语中,或是引用原句,或是只引大意。运用引用辞格,既可使文章言简意赅,有助于说理抒情;又可增加文采,增强表现力。引荐任用:《后汉书·...

如何在html中调用JS文件
2、面向对象。具有内置对象,也可以直接操作浏览器对象。3、动态变化。可以对用户的输入作出反应,也可以直接对用户输出。4、简单易用。JavaScript脚本语言虽然简单,但初学者也能快速掌握。5、只能与HTML语言一起使用。要通过浏览器解释执行。二、如何在HTML中加入JavaScript脚本 JavaScript采用的格式如下:<...

C++中,查询sqlserver时 sql语言中如何引用int变量
CString sql;sql.Format(_T("SELECT * FROM 表名 Where ID=%d"),i);USES_CONVERSION;LPSTR strSQL=T2A(sql);m_pRecordset->Open(strSQL,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);如上,把int型变量i 组合成cstring字符串,然后类型转换,就可以用了。可以组合各种...

和县18830761732: 如何在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里的函数了

和县18830761732: 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);当然要有个主函数. #...

和县18830761732: 怎样在C语程序中调用其它源程序文件的函数 -
宥董更年: 在C语程序头部加 外部文件里的 函数的 原型声明.编译时一起编.例如主C语程序名 my_prog.c 有函数的 my_sub.c 编译 CL my_prog.c my_sub.c ------------------------------------------ 先编好 my_sub.c 也可以 CL -c my_sub.c 得 my_sub.obj 编译 CL my_...

和县18830761732: c语言中如何在一个函数中调用在另个文件中定义的函数
宥董更年: 一、前提条件: 1、两个文件必须编入同一个可执行文件; 2、被调用函数必须是全局函数,即不能是static函数.如果有static修饰,那么必须写在头文件中,并被另一个文件引用. 二、声明: 1、可以声明在头文件中,并在调用文件中引用该头文件; 2、可以直接在调用文件声明,形式为 extern RET_TYPE FUNC_NAME(PARAM_LIST); 其中extern非必须,但一般都会写上,表示这个是其它文件定义的. 三、调用: 声明后,直接调用即可,和本文件函数调用方式并无区别.

和县18830761732: c语言中,多文件编程,如何调用主文件外文件中的函数 -
宥董更年: 如果该函数在主文件外的C语言头文件中,那么用 #include "C语言头文件名" 引用,然后就可以使用了(包含在同一项目下编译) 如果没有,在主文件使用 extern 改函数的定义;来声明一下就可以使用了 例如 extern int foo(int bar); int main(int argc,char **argv) {foo(1); ...return 0;}

和县18830761732: c语言中,如何在头文件中调用某个源文件的函数?? -
宥董更年: 将某个源文件的函数写到一个头文件中包含在头文件中#include ""或者直接包含该源文件文件.

和县18830761732: 一个C语言工程不同C文件之间的函数是怎么被互相调用的呢? -
宥董更年: main 所在程序中 添加函数声明 就可以调用了main.c#include extern int add(int a, int b); int main(void) { int a = 1, b = 2; printf("%d",add(a,b)); } 2.c int add(int a, int b) { return a + b; }

和县18830761732: 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 , 就只能在本文件中使用了, 不能再被其他的文件调用.

和县18830761732: C语言中.如果编写了一个函数,想在不同源文件中调用. -
宥董更年: 可以的.编辑成EXE文件,用cmd命令调用就可以了

和县18830761732: linux c语言下引用其他文件的函数问题 -
宥董更年: 假如你不把b.c编译进去的话就需要通过extern 来申明,你编译进去的话编译器就将这两个c文件都连接在一起了.而且gcc -o 其中就包括了预定义,编译 ,汇编,链接过程了, 也就是说你想在一个C语言的文件中运用其他的C文件的函数有两种方式:1 将你涉及到的C文件一起编译进去.但是这里面只能有一个C文件中有main函数.2. 假如不想将其他的C文件编译进去的话,那就像你说的把C文件的函数通过extern进行申明就可以了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网