externc++ vc++ 中的 extern 是什么意思,具体的用法

extern  时间:2021-08-19  阅读:()

c语言中extern是什么意思

表示这个声明/定义的变量、函数在此文件外部,编译器编译此项的时候不检查该项是否存在,只在最后链接的时候判断这个变量、函数是否存在。

这个关键字通常在头文件出现,因为头文件可能会在多处被引用,而同一签名的函数和变量定义只能出现一次,也可能出现在引用了外部库函数的时候

extern在函数声明中是什么意思?

extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用、记住。

下列语句: extern int a; 就是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。

变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现连接错误。

extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。

另外,extern也可用来进行链接指定。

如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。

即下述两个函数声明没有明显的区别: extern int f(); 和int f(); 当然,这样的用处还是有的,就是在程序中取代include“*.h”来声明函数,在一些复杂的项目中,可以在所有的函数声明前添加extern修饰。

static和extern的区别

static: 一、在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。

1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量。

全局静态变量有以下特点。

a.在全局数据区分配内存。

b.如果没有初始化,其默认值为0. c.该变量在本文件内从定义开始到文件结束可见,且在外部文件不可见. 2、定义局部静态变量:在局部变量前面加上关键字static,其特点如下: a.该变量在全局数据区分配内存。

b.它始终驻留在全局数据区,直到程序运行结束。

c. 其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。

3、定义静态函数:在函数返回类型前加上static关键字,函数即被定义为静态函数,其特点如下: a.静态函数只能在本源文件中使用 b.在文件作用域中声明的inline函数默认为static类型 二、在C++中新增了两种作用:定义静态数据成员或静态函数成员。

静态数据成员: a.内存分配:静态数据成员在程序的全局数据区去分配。

b.初始化和定义: 静态数据成员必须在类定义外初始化,但const静态数据成员除外,const静态数据成员可以在类体中初始化(也可以像非const一样在类外初始化)。

例如: class c1 { public: private: static int num; static const string name = "chio"; }; int c1::num = 20;//没有const修饰的静态成员数据,必须类外定义并且初始化 静态函数成员: 类成员函数(无论是static成员函数或非static成员函数)都可以直接访问static数据成员,但是static成员函数只能访问static数据成员。

并且可以通过类名直接调用. extern: extern可以置于变量或函数前,以在别的文件中标识变量或函数的定义,并提示编译器遇到此变量或函数时在其他模块中寻找其定义. extern在局部函数中声明时,表示此变量,在局部函数外(包括函数外,和文件外). extern声明的变量(即文件公用的变量)最好放在头文件中 对于extern变量来说,仅仅是一个变量的声明,其并不是定义,不会分配内存空间。

extern表示将变量或函数声明为外部链接,变量默认是内部链接,函数默认是外部链接。

因此用来外部链接的函数,声明时有无extern都可以连接通过。

而全局变量则不行。

通常,在模块的头文件中,对本模块提供给其他模块引用的函数和全局变量以关键字extern声明。

c++ vc++ 中的 extern 是什么意思,具体的用法

展开全部 是外部引用,用于在一个文件中引用在其它文件中定义的变量. 比如在文件1中 int i; 在文件2中,需include文件1,再extern int i;从而使文件1的i 也可用于在C++中引用C语言中的函数和变量extern "c"

轻云互联(19元)香港高防云服务器 ,美国云服务器

轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。活动规则:用户购买任意全区域云服务器月付以上享受免费更换IP服...

BGP.TO日本和新加坡服务器进行促销,日本服务器6.5折

BGP.TO目前针对日本和新加坡服务器进行促销,其中日本东京服务器6.5折,而新加坡服务器7.5折起。这是一家专门的独立服务器租售网站,提供包括中国香港、日本、新加坡和洛杉矶的服务器租用业务,基本上都是自有硬件、IP资源等,国内优化直连线路,机器自动化部署上架,并提供产品的基本管理功能(自助开关机重启重装等)。新加坡服务器 $93.75/月CPU:E3-1230v3内存:16GB硬盘:480GB ...

Hosteons - 限时洛杉矶/达拉斯/纽约 免费升级至10G带宽 低至年$21

Hosteons,一家海外主机商成立于2018年,在之前还没有介绍和接触这个主机商,今天是有在LEB上看到有官方发送的活动主要是针对LEB的用户提供的洛杉矶、达拉斯和纽约三个机房的方案,最低年付21美元,其特点主要在于可以从1G带宽升级至10G,而且是免费的,是不是很吸引人?本来这次活动是仅仅在LEB留言提交账单ID才可以,这个感觉有点麻烦。不过看到老龚同学有拿到识别优惠码,于是就一并来分享给有需...

extern为你推荐
网络设备图标显示联网的UPNP设备的图标是什么东西高级工程师证书高级工程师证书是什么样子的,内容是什么格式的? 一般是社会授予还是单位授予?测量师三坐标测量师工资多少零终端ONU终端、e8-c终端、天翼猫三者有什么区别?锤子手机发布会视频锤子手机发布会上,老罗说安卓不是原生的安卓这是什么意思?原生的安卓应该是什么样呢?网络黑科技什么防封软件,都是假的,没有一个是真的,大家不要受骗!hadoop大数据平台大数据分析与应用平台 是什么样的系统手机证书申请手机证书怎么申请啊手机证书申请手机证书可以再什么网站上申请啊余额宝客户端手机支付宝客户端在哪里?
国外空间租用 台湾vps 美国vps评测 拜登买域名批特朗普 justhost mysql主机 灵动鬼影 dd444 日本bb瘦 网站木马检测工具 北京双线 电信主机 优酷黄金会员账号共享 沈阳主机托管 韩国代理ip 服务器论坛 深圳域名 沈阳idc 蓝队云 hosting 更多