尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

C函数函数

C函数函数
📅 发布时间:2026/7/15 4:09:11

内部静态函数和外部函数

函数本质上是全局的,因为定义一个函数的目的就是要被另外的函数调用。如果不加
声明的话,一个文件中的函数既可以被本文件中其他函数调用,也可以被其他文件中的函数
调用。
但是,也可以指定某些函数不能被其他文件调用。根据函数能否被其他源文件调用,
将函数区分为内部函数和外部函数。

内部静态函数

如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,
在函数名和函数类型的前面加static,即:
static 类型名 函数名(形参表);
例如static int fun(int a,int b),fun是一个内部函数,只能在本文件中使用,不能被其他文件调用。
内部函数又称静态函数,因为它是用static声明的。使用内部函数,可以使函数的作用
域只局限于所在当前文件中使用。这样,在不同的其他文件中即使有同名的内部函数,也互不干扰,不必担心所用内部函数是否会与其他文件模块中的函数同名。
通常把只能在本文件中使用的函数和外部变量放在文件的开头,前面都冠以static使之局部化,变成内部静态函数和外部静态全局变量其他文件不能引用。这就提高了程序的可靠性。
file.c
static int a;
static int b;
static int fun(int a,int b);

外部函数

如果在定义函数时,在函数首部的最左端加关键字extern(可省略),则此函数是外部函数,可供其他文件调用。
在当前本文件中,定义函数时可省略extern,则默认为外部函数。
extern int fun(int a, int b)
在需要调用此函数的其他文件中,需要对此函数作声明(不要忘记,即使在本文件中调
用一个函数,也要用函数原型进行声明)。在对此函数作声明时,要加关键字extern,表示该
函数“是在其他文件中定义的外部函数”。
filel.c(文件1)
#include <stdio.h> int main() { //以下3行声明了在本函数中调用的已在其他文件中定义的3个函数 extern void enter_string(char str[]); //对其他文件的函数的声明 extern void delete_string(char str[],char ch); //对其他文件的函数的声明 extern void print_string(char str[]); //对其他文件的函数的声明 //定义局部变量 c str char c,str[80]; enter_string(str);//调用其他文件中定义的enter_string函数,并传入参数str delete_string(str,c);//调用其他文件中定义的delete_string函数,并传入参数str c print_string(str);//调用其他文件中定义的print_string函数,并传入参数str return 0; }
file2.e(文件2)
void enter_string(char str[80]) //定义外部函数enter_string { gets(str); }
file3.e(文件3)
void delete_string(char str[],char ch) //定义外部函数delete_string { }
file4.c(文件4)
void print_string(char str[]) //定义外部函数print_string { printf(”%s\n”,str); }

第三方库里的外部函数的引用

在当前文件中,我要使用第三方库里的某一个外部函数的引用, 不需要 额外写extern 某一个函数 这么费劲。 只需要 引入#include 头文件即可 因为头文件里包含了 该外部函数的原形函数的引用。
例如: 使用第三方库里sin函数 只需要在当前文件里 #includde <math.h >即可。

相关新闻

  • 功率管死区时间测量与优化:从原理到实践完整指南
  • 三维空间平面交线计算:从数学原理到C++健壮实现
  • 从零到一:超外差收音机焊接全流程实战与高频电路解析

最新新闻

  • 多维聚合实战:从SQL到Pandas的OLAP数据操作心法
  • DRA75x硬件设计:电气特性与电源时序的实战解析
  • Unity多人游戏开发入门:30分钟构建首个网络同步Demo
  • CTF逆向实战:从魔改UPX脱壳到RC4、SM4密码算法分析
  • 真力时官方更换原装表带价格查询|全新服务热线及门店地址权威信息公告(2026年7月最新) - 亨得利钟表维修中心
  • MoviePy 是一个基于 Python 的开源视频编辑库,用于剪辑、合成、处理和生成视频

日新闻

  • 告别启动盘残留:用Diskpart彻底清除U盘EFI分区与恢复完整空间
  • 2026 年宜春诚信的塑料缠绕膜厂家哪个好,缠绕膜背后的秘密:你不知道的成本陷阱 - 领域鉴赏官
  • Arch ECS 入门指南:10分钟掌握C#高性能数据驱动架构

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号