论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
关于变量的声明和定义、内部函数和外部函数 ...
关于变量的声明和定义、内部函数和外部函数
拉不拉稀肚拉稀
论坛元老
|
2024-11-14 17:04:03
|
显示全部楼层
|
阅读模式
楼主
主题
1821
|
帖子
1821
|
积分
5465
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
关于变量的声明和定义
一个函数一般由两部分组成:声明部分和执行语句。声明部分的作用:是对有关的标识符(如变量、函数、结构体、共用体等)的属性进行声明。对于函数而言,声明和定义的区别是明显的,函数的声明是函数的原型,而函数的定义是对函数功能的定义。对被调用函数的声明是放在主调函数的声明部分中的,而函数的定义显然不在声明部分的范围内的,它是一个独立的模块
对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:
需要建立存储空间的,此为定义性声明,简称定义
不需要建立存储空间的,此为引用性声明
广义的说,声明包括定义,但并非所有的声明都是定义。例如 int a;,既是声明,也是定义;而对extern a;而言,是声明而不是定义。一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明。显然这里指的声明是狭义的,即非定义性声明。
外部变量定义和外部变量声明的含义是不同的。外部变量的定义只能有一次,它的位置在所有函数之外。在同一文件中,可以有多次对同一外部变量的声明,它的位置可以在函数内(哪个函数要用就在哪个函数中声明),也可以在函数之外(在外部变量的定义点之前)。系统根据外部变量的定义(而不是根据外部变量的声明)分配存储单元。对外部变量的初始化只能在“定义”时进行,而不能在“声明”中进行。所谓“声明”,其作用是声明该变量是一个已在其他地方已定义的外部变量,仅仅是为了扩展改变量的作用范围而作的“声明”
在函数中出现对变量的声明(除了用 extern 声明的以外)都是定义。在函数中对其他函数的声明不是函数的定义
内部函数和外部函数
函数本质上是全局的,因为定义一个函数的目的就是要被别的的函数调用。假如不加声明的话,一个文件中的函数既可以被文件中的其他函数调用,也可以被其他文件中的函数调用。但是,也可以指定某些函数不能被其他文件调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数
内部函数
假如一个函数只能被本文件中的其他函数所调用,它称为内部函数
在定义内部函数时,在函数名和函数类型的前面加static ,即:
static 类型名 函数名(形参表);
内部函数又称为静态函数,因为它是用 static 声明的。
利用内部函数,可以使函数的作用域只范围于所在文件。这样子,在不同的文件中纵然有同名的内部函数,也互不干扰。这就使它对外界“屏蔽”了
通常,一个大步伐通常分工由不同的人分别编写不同的文件模块,在各人编写本身的文件模块时,不必担心所用函数是否会与其他文件模块中的函数同名
通常把只能由本文件利用的函数和外部变量放在文件开头,前面都冠以 static 使之局部化,其他文件不能引用。这就提高了步伐的可靠性。
外部函数
假如在定义函数时,在函数的首部的最左端加关键字 extern ,则此函数是外部函数,可供其他文件调用
extern 函数类型 函数名(形参列表)
C语言规定,假如在定义函数时省略 extern ,则默认为外部函数
在需要调用此函数的其他文件中,需要对此函数作声明(不要忘记,纵然在本文件中调用一个函数,也要用函数原型进行声明)。在对此函数作声明时,要加关键字 extern ,表示该函数“是在其他文件中定义的外部函数”
利用 extern 声明就能够在本文件中调用在其他文件中定义的函数,或者说把该函数的作用域扩展到本文件中
extern 声明的形式就是在函数原型基础上加关键字 extern
由于函数本质上是外部的,在步伐中经常要调用其他文件中的外部函数,为方便编程,C语言允许在声明函数时省写 extern
用函数原型能够把函数的作用域扩展到定义该函数的文件之外(不必利用 extern)。只要在利用该函数的每一个文件中包罗该函数的函数原型即可。函数原型通知编译系统:该函数在本文件中稍后定义,或在另一文件中定义。
利用函数原型扩展函数作用域最常见的例子是 #include指令的应用。在#include指令所指定的“头文件”中包罗调用库函数所需的信息
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
拉不拉稀肚拉稀
论坛元老
这个人很懒什么都没写!
楼主热帖
c语言学习4
【Atlas 800 训练服务器(型号:9000) ...
WinUI3 FFmpeg.autogen解析视频帧,使 ...
Docker 基础 - 3
IOS OpenGL ES GPUImage 黑白色调模糊 ...
【最新最详细】SQL Server 2019 安装教 ...
【主流技术】ElasticSearch 在 Spring ...
第四次打靶
SQLI-LABS(Less-11、12)
制造型企业的数字化转型离不开 MES 系 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表