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"

ReliableSite:美国服务器租用,洛杉矶/纽约/迈阿密等机房;E3-1240V6/64GB/1TSSD,$95/月

reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...

华为云(69元)828促销活动 2G1M云服务器

华为云818上云活动活动截止到8月31日。1、秒杀限时区优惠仅限一单!云服务器秒杀价低至0.59折,每日9点开抢秒杀抢购活动仅限早上9点开始,有限量库存的。2G1M云服务器低至首年69元。2、新用户折扣区优惠仅限一单!购云服务器享3折起加购主机安全及数据库。企业和个人的优惠力度和方案是不同的。比如还有.CN域名首年8元。华为云服务器CPU资源正常没有扣量。3、抽奖活动在8.4-8.31日期间注册并...

青云互联:美国洛杉矶CN2弹性云限时八折,15元/月起,可选Windows/可自定义配置

青云互联怎么样?青云互联是一家成立于2020年6月的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。美国cn2弹性云主机限时8折起,可选1-20个IP,仅15元/月起,附8折优惠码使用!点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联活动方案:美国洛杉矶...

extern为你推荐
安卓开发环境搭建最新电脑安卓开发环境的搭建方法?注册电子邮件电子邮箱怎么注册呢软件更新不可用为什么我用流量更新软件更新不了请问是什么原因????解码器有什么用什么是播放器解码器什么是无线上网无线网络是什么意思宽带天线中国电信宽带,无线路由器如何安装。管道通信通信管道工程赚钱吗上传歌曲的网站哪里有免费上传歌曲的网站啊etlETL认证是什么!安全管家手机安全管家是否真的有用
vps代购 如何注册网站域名 主机测评网 搬瓦工官网 360抢票助手 光棍节日志 商家促销 hkg gtt 网站在线扫描 江苏双线服务器 网页提速 个人免费邮箱 qq金券 ledlamp 后门 汤博乐 建站技术 月付空间 建站论坛 更多