问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-24 18:12

我来回答

5个回答

热心网友 时间:2023-10-30 19:53

可以调用。

一、从一个源文件里调用另一个源文件的函数。在源文件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"。

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include<文件名>

2、#include"文件名"

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include<math.h>//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。

热心网友 时间:2023-10-30 19:53

可以的。

在C语言中,函数调用的方式有多种,在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用,还是自右向左使用。对此,各系统的规定不一定相同。

__cdecl调用规则就是C调用规则。按从右至左的顺序压参数入栈,由调用者把参数弹出栈。切记:对于传送参数的内存栈是由调用者来维护的。

返回值在EAX中因此,对于象printf这样变参数的函数必须用这种规则。编译器在编译的时候对这种调用规则的函数生成修饰名的饿时候,仅在输出函数名前加上一个下划线前缀,格式为_functionname。

扩展资料

示例:

在VC6.0和C-Free 5.0下运行以下代码。

#include <stdio.h>

int main(){

int i=8;

printf("%d %d %d %d\n",++i,++i,--i,--i);

return 0;

}

运行结果:

8 7 6 7

可见VC 6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为:

9  10  9  8

热心网友 时间:2023-10-30 19:54

先在当前目录下创建.c文件 即你的main函数 如何创建.h文件 注意不能有main函数。如何在主文件里加#include "XX.h" 即可

热心网友 时间:2023-10-30 19:54

创建一个project,创建第一个文件c1.c,在其中写出函数,再在第二个文件c2.c里在要调用的c1中的函数前加上extern使函数成为外部函数eg: extern int funa(int); ,这样就可以在c2.c里调用c1的那个函数了。

热心网友 时间:2023-10-30 19:55

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... C语言 外部变量函数的调用 C语言怎么调用外部函数 c语言外部函数调用 单片机 C语言,如何调用外部自定义函数。 C语言中怎么调用外部函数? 主任医师和一级专家的区别是什么? 是不是参考副主任医师除了要满足年限,还要在主治医师期间发表论文,没有发表论文可以参考吗? 医生的职称是怎么算的啊? 谁知道晋升副主任医师对论文字数的要求 升主治医师需要发论文吗 2021年乡镇卫生院的医生进副主任医师还需论文吗? 晋升副主任医师是要先发表论文吗? 副主任医师职称论文发表 申报主任医师三级职称 需要具备哪些条件? 评审副主任医师需要在哪些刊物发表论文?需要几篇? 职称论文医学,你还在为职称论文医学困惑吗? 如何查看本地的天气? 怎样在桌面上显示本地天气预报? 我想下载一个本地天气预报,预计十五天内。 应用商店找不到旧版的天气预报? C语言如何使用外部文件中的函数 C语言外部函数调用问题。 c语言如何 调用外部程序 c语言程序调用外部文件 C语言中外部函数怎么调用? c语言中外部函数是什么意思 C语言调用外部函数问题(vs2015lnk2019) 半夜起床嘴里经常发苦,是某种疾病的预兆吗?怎样预防? 《重生之幸福攻略》全文+番外百度云!急!! 求小小白的重生幸福日记番外 要到112章!谢谢 求《小小白的重生幸福日记(GL)》完结全文 男人至死是少年下句怎么接 男人至死是少年,姑娘志终是过客是什么意思? 炫龙m7鼠标宏怎么设置 炫龙笔记本键盘怎么拆,想加内存条 炫龙笔记本数字小键盘怎么开? 炫龙笔记本键盘失灵 笔记本炫龙鼠标键盘锁了怎么解锁 同价位段华硕天选好还是炫龙m7好? 游戏本推荐排行榜前几名有哪些?求介绍