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"

GigsGigsCloud:$16/月KVM-1GB/30GB/1TB/1.6T高防/洛杉矶CN2 GIA+AS9929

GigsGigsCloud是一家成立于2015年老牌国外主机商,提供VPS主机和独立服务器租用,数据中心包括美国洛杉矶、中国香港、新加坡、马来西亚和日本等。商家VPS主机基于KVM架构,绝大部分系列产品中国访问速度不错,比如洛杉矶机房有CN2 GIA、AS9929及高防线路等。目前Los Angeles - SimpleCloud with Premium China DDOS Protectio...

wordpress高级跨屏企业主题 wordpress绿色企业自适应主题

wordpress高级跨屏企业主题,通用响应式跨平台站点开发,自适应PC端+各移动端屏幕设备,高级可视化自定义设置模块+高效的企业站搜索优化。wordpress绿色企业自适应主题采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera等;同时支持移动终端的常用浏览器应...

LOCVPS全场8折,香港云地/邦联VPS带宽升级不加价

LOCVPS发布了7月份促销信息,全场VPS主机8折优惠码,续费同价,同时香港云地/邦联机房带宽免费升级不加价,原来3M升级至6M,2GB内存套餐优惠后每月44元起。这是成立较久的一家国人VPS服务商,提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建站和远程办...

extern为你推荐
错误代码电脑出现了这个错误代码怎么办?表单控件常用的VFP表单控件有哪些动画技术动漫设计与动漫制作技术这两个专业有什么区别程序设计模式设计模式是做什么的组或资源的状态不是执行请求操作的正确状态在输入netsh wlan start hostednetwork时,显示无法启动承载网络,组或资源的状态不是执行操作的正确状态u盾证书转款叫我下载U盾证书,是什么意思微看为什么我的抖音上传视频了,没有极快极慢这种的设置,只有下一步这种了?别说卸载了再下一个我试了没用查看加密空间怎么看加密的qq空间解码器有什么用视频编码器和视频解码器有什么不同安卓手机用什么安全软件好现在的安卓手机用哪个应用下载软件好用?
cn域名 美国加州vps 汉邦高科域名申请 动态域名解析软件 payoneer wdcp evssl lighttpd tk域名 ibrs 英文站群 gg广告 创梦 帽子云 vip购优惠 中国电信宽带测速网 支付宝扫码领红包 789电视剧 中国电信宽带测速器 域名dns 更多