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"

spinservers:10Gbps带宽高配服务器月付89美元起,达拉斯/圣何塞机房

spinservers是一家主营国外服务器租用和Hybrid Dedicated等产品的商家,Majestic Hosting Solutions LLC旗下站点,商家数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,且硬件配置较高。目前,主机商针对达拉斯机房机器提供优惠码,最低款Dual E5-2630L v2+64G+1.6TB SSD月付89美元起,支持PayPal、支付宝等...

10gbiz:香港/洛杉矶CN2直连线路VPS四折优惠,直连香港/香港/洛杉矶CN2四折

10gbiz怎么样?10gbiz在本站也多次分享过,是一家成立于2020的国人主机商家,主要销售VPS和独立服务器,机房目前有中国香港和美国洛杉矶、硅谷等地,线路都非常不错,香港为三网直连,电信走CN2,洛杉矶线路为三网回程CN2 GIA,10gbiz商家七月连续推出各种优惠活动,除了延续之前的VPS产品4折优惠,目前增加了美国硅谷独立服务器首月半价的活动,有需要的朋友可以看看。10gbiz优惠码...

spinservers($89/月),圣何塞10Gbps带宽服务器,达拉斯10Gbps服务器

spinservers是Majestic Hosting Solutions LLC旗下站点,主要提供国外服务器租用和Hybrid Dedicated等产品的商家,数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,高配置硬件,支持使用PayPal、信用卡、支付宝或者微信等付款方式。目前,商家针对部分服务器提供优惠码,优惠后达拉斯机房服务器最低每月89美元起,圣何塞机房服务器最低每月...

extern为你推荐
计算机网络的定义计算机网络定义的三要素是什么?accesspoint接入点APN什么意思啊监控设备安装监控器怎么安装锤子手机发布会视频锤子手机怎么开机的相关视频锤子手机发布会视频锤子手机怎么样 锤子手机评测大数据人才培养人才管理要怎么用好大数据什么是3g3G到底是什么啊 解释的详细点可以吗?rpc电脑上的<RPC>什么意思水印水印是什么?系统镜像原版系统镜像是什么意思和其他的有什么区别
100m网站空间 韩国服务器租用 过期已备案域名 便宜服务器 外国服务器 42u机柜尺寸 xfce 服务器cpu性能排行 idc是什么 腾讯实名认证中心 域名和空间 免费网页申请 789电视剧 万网主机管理 网页提速 阵亡将士纪念日 汤博乐 nnt web服务器有哪些 服务器操作系统 更多