问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言中extern的意思是什么??598

发布网友 发布时间:2023-10-23 20:13

我来回答

5个回答

热心网友 时间:2024-11-29 07:52

extern关键字可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。这里起到的是声明作用范围的用处。

extern的另外用法是当C和C++混合编程时假如c++调用的是c源文档定义的函数或变量,那么要加extern来告诉编译器用c方式命名函数:

文档A.cpp调用a.c里面的变量i和函数callme()

拓展资料

1、可以通过把原函数名与参数信息结合,产生一个独特的内部名字,这种技术叫做名字修饰(Name Mangling)。名字修饰规则没有一个标准,所以不同的编译器的名字修饰规则也不一样。

下面是一组函数,其中f()函数重载了:

f(void)和f(int)是不同的函数,除了函数名相同以外没有任何关系。当生成obj目标文件时,为了区分它们,C++编译器根据参数信息进行了名字修饰:

2、C语言中没有名字修饰(Name Mangling),因为C语言不支持函数重载。但是如果C++中含有C代码,在编译时C++编译器对C代码的函数也会进行名字修饰,函数名变了以后,将导致在C运行库中找不到对应函数,发生链接错误。

为了防止C++编译器对C代码进行名字修饰,我们将C代码用extern “C”进行链接指定,告诉编译器,在生成中间文件时,不要对这部分代码进行名字修饰,而是生成符合C规则的中间符号名。

添加了extern “C”链接指示后,上面的代码就能够正常运行了。

热心网友 时间:2024-11-29 07:53

extern是全局变量声明
只要声明全局变量就默认 前面加extern(程序员可以不加,但编译器默认加上)

若本文件 引用别的文件中的全局变量 一定要加上extern 声明一下

例如 #include "my_Fun.c"
extern int b;//b是在my_Fun.c中声明了的一个全局变量

这个extern 是个声明他可以在任何地方声明 引用了一个全局变量 (可以试试 在main()函数执行完之后声明 也不会出错)

这样在 工程的总头文件中就不需要考虑 先#include 哪个文件了

热心网友 时间:2024-11-29 07:53

include是把整个都加载其中,包括文件里的所有的函数和变量。而采用extern只需要把需要的变量引用进来。这样可以保证执行效率,及资源节约!

热心网友 时间:2024-11-29 07:54

我只知道C++兼容C语言的时候用extern其他情况还没研究。

热心网友 时间:2024-11-29 07:54

extern 是声明。在链接时链接源函数体。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...时间会发作,很痛的,请问是这样吗?会痛多久? ...已经坏了,如今全身浮肿,尿排不出,医生说就这 我爷爷得了肝癌晚期,腹水,不能手术.听说氩氦超冷刀技术能治.哪里有... 父亲59岁得了肝癌晚期,医生说最多半年时间了,上面还有80多岁的爷爷... 长春跑大连的列车员,怎么区分正式分和临时工呢? 员工刚怀孕就被开除,开除负责人拒不认错,你如何看待该公司的态度?_百 ... 员工在职期间怀孕,老板可以无故迟退吗? 老板开除怀孕女员工违法吗 如何选购蚊帐 什么样的蚊帐最好 阴险的人有什么特点?11 the kite runner(追风筝的人)的书。页数有多少...2 tcl网络电视连音响(无法音频输出)?43 冰箱坏了 打算买一个 是机械温控的好还是电脑温控的好 是直冷...35 TCL液晶电视有嗡嗡嗡的声音,无法解决,急求帮助13 tcl液晶电视不显示画面但有声音怎么办?14 通报批评、警告等属于行政处罚中的()。 关于比喻、拟人,夸张,排比的句子各十个(二十字左右)839 为什么H2SO4能和k2so3反应生成so2,那么hno3可...3 硫化亚铜与浓硝酸反应为什么会生成硫酸1 QQ安全中心显示我的在其他市登录,但是我看了那个时间,...1 计算机一级考试操作题没保存,然后就交卷,系统会自动保存答案吗?有_百 ... 问道仙魔录称号属性 配置maven使用nexus报这个错误该怎么解决 圣诞节的英语资料,还要中文。急!! (圣诞英文歌,圣诞节由来...)_百度... 福州今天10-03-04早上8.22分左右的时候是不是地震了?? 极维客曝光的无源代码30秒普通游戏转VR版游戏中,依靠的是简...1 求问,发动机塑料盖怎么打开 青菜烂叶打什么农药好用 木吉他可以加拾音器和效果器吗? 苹果手机总是1格信号怎么回事1 求蜂窝钱包app的链接? CAD多行文字居中问题3 我的手机,为什么,老是,只有一格信号?94 为什么只有一格信号 网络显示没服务 就解答 苹果手机2 非所以内交于孺子之父母 所以什么意思7 新一贷app入口? 对这句话有什么看法:谓人皆有不忍人之心者,今人乍见孺子将于入...29 为什么我的苹果6s电信的信号只有一两格啊5 cad2008里的文字怎么水平居中和垂直居中,这个版本的CA...8 子日:[今人乍见孺子将入於井,皆有怵惕恻隐之心,非所以内交於...3 ??????为什么我的iphone4永远只有一格信号????... 在CAD的多行文字中,我输入了几个文字,然后想对第一行居中。... CAD中的多行文字问题 问道称号属性表? 我的qq,微信,qq安全中心全都无法登录,qq我登进去提示登... 硫化亚铜与浓硝酸或稀硝酸反应,怎么有的会生成硫单质,有的则生...2 找含有比喻,拟人,夸张,排比的句子各五句308 QQ安全中心显示我的在其他市登录,但是我看了那个时间,...1 突然很想吃 水煮牛肉 要够辣 地道的~ 上海浦东 有这样的饭...