extern 关键字

本文详细介绍了C/C++中的extern关键字,讲解了如何使用extern声明外部变量和函数,探讨了声明函数时是否需要extern的规则,并解释了extern "C"在混合编程中的作用,强调在实际编程中,通常在声明外部函数时不需要使用extern关键字。

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

一 extern 声明一个外部变量:

外部变量是指在调用点所在函数或者文件外部定义的全局变量。


二 extern 定义或声明外部函数:
外部函数的概念和外部变量类似,是指在调用点所在函数或者文件外部定义的函数。

a. 定义函数时,在函数返回值类型前面加上extern关键字,表示此函数是外部函数,可供其他文件调用。
   c语言规定,定义函数时省略extern的,默认为外部函数。

b. 调用外部函数时,需要用extern对函数作出声明。
    c语言规定,声明函数时,可以省略extern。


声明外部函数时,为什么可以省略extern呢?
因为 “声明外部函数”有两层含义,一是,声明函数;二是,外部函数。
那么,首先,声明函数,当然不需要extern呀,因为函数的声明和定义区别是很明显的。
外部函数,看样子,用extern关键字来告诉编译器这是声明一个外部函数是一个不错的选择。
那么,如果不用extern呢?编译器知道了此函数声明,然后在之前没有发现此函数的定义,自然就知道了这应该是一个外部函数了。所以,似乎不加extern也是可以的。

c/c++也真奇怪,规则定义得也太不严密了,为什么声明外部函数时可以加extern也可以省略呢?
个人觉得可能是为了与extern声明外部变量的用法保持一致。声明外部函数时,完全不用加extern,编译器自己就能知道的。但是为了保持与声明外部变量的用法一直就也允许用extern来声明了。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值