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

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

发布网友 发布时间:2023-10-20 05:08

我来回答

5个回答

热心网友 时间:2024-12-02 06:33

可以调用。

一、从一个源文件里调用另一个源文件的函数。在源文件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命令,这些定义就可被任何源文件使用。

热心网友 时间:2024-12-02 06:33

可以的。

在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

热心网友 时间:2024-12-02 06:34

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

热心网友 时间:2024-12-02 06:34

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

热心网友 时间:2024-12-02 06:35

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
梦见水猴,俗称水鬼。是好是坏 驱虫药多久吃一次 什么情况需要吃打虫药 我的微信公众号太久没有更新被冻结了,怎么样才能注销重新 三星note3画笔画的作品(扩展名SPD)怎么样下载到电脑?怎样转换成JPG格式... 火灾甲乙丙丁类怎么分 什么叫甲类、乙类、丙类和丁类液体 小分子化合物库选哪家放心? 怪物猎人世界肉块交货方法介绍介绍_怪物猎人世界肉块交货方法介绍是什么... 怪物猎人世界肉块获得方法介绍介绍_怪物猎人世界肉块获得方法介绍是什么... 开心消消消赚钱版福利 求音乐之声Do-Re-Mi的简谱192 在电势差与电场强度的关系中,U=Ed或E=Ud中,U是否要带...10 关于电势差与场强的关系,下列说法中正确的是(  )A.U=E... 年轻女士,适合佩戴什么玉?9 正宗的鱼香肉丝是怎么做出来的?1 为什么加淀粉后能洗干净木耳?4 大家对平安证券灵活宝的业务还了解不 平安证券的灵活宝,收益怎么样 请问PDF格式文件的简历需要彩印的话要转换成CMYK模式吗?... 大家觉得哪儿的投资,收益相对还是不错的呢,平安灵活宝怎么样 为什么说化学平衡反应中,全是气体参加的反应,体系密度一定时,不能作... 3岁小孩鞘膜积液能自愈吗27 用Java编写某城市电话号码 为什么加淀粉后能洗干净木耳?4 一个长方形花坛,该怎样设计种植1 running man所有男主持男扮女装是那一期63 running+man金钟国和李光洙男扮女装到底是哪一期!2 金钟国和李光洙都男扮女装的是哪一集 running man 中李光洙哪几集变女装19 我们家发现一种虫子,请问这是什么以及怎么消灭它,谢谢! c语言中,如何在头文件中调用某个源文件的函数?? 六十多岁的老人可以买玉手镯戴吗2 股票里卡位是什么意思62 4万左右买什么车好84 小米1主题风格总是显示无法获取网络数据。 求音乐之声Do-Re-Mi的简谱192 毕业论文总结与展望57 山东寰球好学国际教育咨询有限公司怎么样? r11和荣耀9哪个流畅 荣耀9和OPPO R11哪个性能好的最新相关信息1 荣耀9和r11性能哪个好 梁山伯与祝英台为什么要葬在九龙墟,有人知道吗?回答啊7 running man李光洙穿女装有哪几期4 关于电视购物笔记本电脑的真假问题10 谁知道《音乐之声》里的do re mi 的歌谱?8 用java写一个登陆程序,可以与服务器连接,登陆成功后跳转到...1 音乐之声中Maria唱过的“Do Re Mi”(哆来咪)的简...9 有谁知道&lt;音乐之声&gt;里面的&lt;Do re mi&gt;的完整歌谱和歌...91 嘉定镇到上海轻防市场怎么走 golang怎么取某天零点时间戳1