比较合理的extern作用描述

本文探讨了C语言中extern关键字的用途及其对变量和函数的作用范围的影响。解释了extern修饰的函数原型与未修饰的区别,以及extern修饰的变量声明与定义之间的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A君这样问:c语言中extern修饰的函数原型与不用extern修饰的函数原型有没有区别?

B君这样答:

具体见《C++程序设计教程》钱能 清华大学出版社
第101页“默认的函数声明或定义总是extern的,所以......”

一些同志应该分清变量和函数所用的extern修饰,在用法上是不同的。
不要把变量的extern用法想当然的套用到函数上。

C君这样答:

函数根本不按照全局和局部的概念进行区分,因为C不支持函数的嵌套定义,而且也不像C++可以把函数放在类域/名字空间域里面做成员。

extern在这里是指明函数的链接域用的,非static情况下,产生的链接符号是全局的,指定static的时候是使用了文件域,这个都是在链接器里面的概念。

c语言中extern修饰的变量与不用extern修饰的变量有没有区别?

我的回答:

有extern修饰的变量是个声明,声明在其他文件定义的变量在这个文件被使用;没有extern修饰的变量是全局变量定义,这个全局变量如果要被其他文件使用,其他文件必须要加extern修饰来声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值