C语言什么是外部函数?怎么⽤?

一、问题

        什么是外部函数呢?怎么使⽤?

二、解答

        外部函数在整个源程序中都有效,其定义的⼀般形式如下。

extern 类型声明符 函数名(形参表);

例如:

extern int f(int a,int b);

        调⽤外部函数时,需要对其进⾏声明。

[extern] 函数类型 函数名(参数类型表),函数名 2(参数类型表 2)…];

        如在函数定义中没有声明 extern 或 static,则隐含为 extern。在⼀个源⽂件的函数中调⽤其他源⽂件中定义的外部函数时,应⽤ extern 声明被调⽤函数为外部函数。

例如:

file1.c

main()
{extern int fl(int i);        /*外部函数声明,表⽰f1()函数在其他源⽂件中*/
}

file2.c

...
extern int fl(int i);        /*外部函数定义*/
{...
}

⼜如:

f1.c

main()
{extern void input(...),process(...),output(...);input(...);process(...);output(...);
}

f2.c

...
extern void input(...)        /*定义外部函数*/
{...
}        

f3.c

...
extern void process(...)        /*定义外部函数*/
{...
}

f4.c

...
extern void output(...)        /*定义外部函数*/
{...
}

三、总结

        外部函数是程序模块化的重要实现技术,⼀定要熟练掌握。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/802434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医疗器械常见法规和标准

在医疗器械行业找工作,有些JD上会明确要求熟悉相关的医疗器械法规和标准,比如:ISO13485、NMPA、CE、IEC62304、IEC60601、IEC14971等等,根据这些我来简单总结下: ISO 13485(医疗器械质量管理体系&#xff0…

750万人受影响,印度电子巨头boAt重大数据泄露事件

近日,印度消费电子巨头boAt遭遇重大数据泄露事件,超过750万客户的个人数据遭到泄露,泄露的个人数据包括姓名、地址、联系电话、电子邮件 ID 和客户 ID 以及其他敏感信息,目前这些泄露数据正在暗网上流传。 boAt Lifestyle数据库被…

【数据结构】考研真题攻克与重点知识点剖析 - 第 8 篇:排序

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…

【干货】【常用电子元器件介绍】【集成电路】(一)--集成电路的类型和主要参数

声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。 集成电路是一种采用特殊工艺,将晶体管、电阻、电容等元件集成在硅基片上而形成的 具有特定功能的器件,英文名称为Integrated Circuit,缩写为IC,俗称芯片。集成电路能执 行一些特定的功能,如…

Leetcode 438. 找到字符串中所有字母异位词和Leetcode 454. 四数相加 II

文章目录 Leetcode 438. 找到字符串中所有字母异位词题目描述C语言题解和思路解题思路 Leetcode 454. 四数相加 II题目描述C语言题解和解题思路解题思路 Leetcode 438. 找到字符串中所有字母异位词 题目描述 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子…

Android 包命名规范

Android包目录的命名规范会直接影响到整个APP攻城后期的开发效率和拓展性。 常用两种命名方式:PBL(package by layer ) 和PBF(pakcage by Feature) layer 英/ˈleɪə(r)/ 翻译:层 feature 英/ˈfiːtʃə(r)/ 翻译:特色 1 Pac…

【吊打面试官系列】Java高并发篇 - 在 Java 中 Executor 和 Executors 的区别?

大家好,我是锋哥。今天分享关于 【在 Java 中 Executor 和 Executors 的区别?】面试题,希望对大家有帮助; 在 Java 中 Executor 和 Executors 的区别? Executors 工具类的不同方法按照我们的需求创建了不同的线程池&am…

入职后,你能为公司带来什么

几乎所有人都知道简历的重要性,觉得应该把简历写好,但由于以往大家套用的模板类似,而且借鉴的简历也都是平铺直叙的描写基本信息、教育背景、项目经历等信息,其实很多人也知道凸显亮点的重要性,但总是无从下手。 造成这种情况很根源的一个问题在于,很多人觉得自己入职后…

代码的重构

代码的重构 1. 代码的重构2. 创建牌相关工具类3. 创建图层相关工具类4. 修改LayerUtil.java 代码的重构 学习于bilibili 春娇与志明 1. 代码的重构 将之前的代码进行封装和重构 方便之后的阅读和维护 故将代码封装,对外提供一个统一访问的入口 2. 创建牌相关工具…

C++ 类的构造函数和访问控制

在 C++ 中,类的构造函数有以下几种: 默认构造函数(Default Constructor): 如果类没有显式定义构造函数,编译器会自动生成一个默认构造函数。默认构造函数没有参数,也不执行任何操作。如果类中没有其他构造函数,那么默认构造函数会被调用。 参数化构造函数(Parameteriz…

探索未来的旋律:AI生成音乐的魔法(附GPT镜像站大全)

在数字化时代的浪潮中,人工智能(AI)已经触及了我们生活的方方面面,从自动驾驶汽车到智能家居系统,再到高度个性化的推荐算法。然而,AI的魔法并不止步于此。近年来,AI在艺术和创造性领域的应用也…

#Arduino(代码记录)

设备:esp32c3 IDE:Arduino 实验: (1)获取网络时间,b站粉丝数和b站关注数,心知天气 #include "HTTPClient.h" #include "WiFi.h" #include "ArduinoJson.h" char *ssid &qu…

【保姆级讲解PyCharm安装教程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

硬盘删除的文件怎么恢复?恢复方法大公开!

“硬盘删除的文件还有机会恢复吗?刚刚清理电脑垃圾的时候不小心删除了很多重要的文件,有什么方法可以有效恢复这些文件吗?” 在数据时代,我们会将很多重要的文件都保存在电脑上,如果我们清理了电脑上的文件&#xff0c…

基于分布式鲁棒性的多微网电氢混合储能容量优化配置——1

Optimal configuration of multi microgrid electric hydrogen hybrid energy storage capacity based on distributed robustness A B S T R A C T 储能与微电网相结合是解决分布式风能、太阳能资源不确定性、降低其对大电网安全稳定影响的重要技术路径。随着分布式风电和太阳…

麦多馅饼口味有哪些?

麦多馅饼有: 照烧鸡腿口味、藤椒鸡腿口味、黑椒牛肉口味、麻辣鸡肉口味、酱汁肉口味、猪肉香菇口味、汁香培根口味、香辣鱿鱼口味、麻辣小龙虾口味、榴莲芝士口味。 更多详情:麦多馅饼口味有哪些,麦多馅饼口味推荐? 走进麦多,一…

Git分布式版本控制系统——Git常用命令(一)

一、获取Git仓库--在本地初始化仓库 执行步骤如下: 1.在任意目录下创建一个空目录(例如GitRepos)作为我们的本地仓库 2.进入这个目录中,点击右键打开Git bash窗口 3.执行命令git init 如果在当前目录中看到.git文件夹&#x…

node后端上传文件到本地指定文件夹

实现 第一步,引入依赖 const fs require(fs) const multer require(multer) 第二步,先设置一个上传守卫,用于初步拦截异常请求 /*** 上传守卫* param req* param res* param next*/ function uploadFile (req, res, next) {// dest 值…

Python异常处理try与except跳过报错使得程序继续运行的方法

本文介绍基于Python语言的异常处理模块try与except,对代码中出现的报错加以跳过,从而使得程序继续运行的方法。 在Python语言中,try语句块用于包含可能引发异常的代码,而except语句块则用于定义在出现异常时要执行的代码。其基本结…

Echarts多曲线数值与Y周刻度不符合、Echarts tooltip文字设置左对齐、Echarts折线图背景区间色自定义

Echarts多曲线数值与Y周刻度不符合: 问题描述: 在展示多曲线图表的时候,发现图表曲线数值与Y轴刻度对应不上 问题解决方式: 查看下Echarts的配置option中的seriess属性(多曲线的时候这个属性应该是一个数组),然后查看数组中的每个…