externextern用法

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

C语言中 extern 的用法,最好有示例,概念少说点

extern我用了几次,主要是声明外部变量的作用,我用的也是在头文件中。

比如说,你有一个project.c,lib.c,lib.h,三个文件,在lib.h里面有lib.c的变量定义,比如a[4]数组,也就是说这个变量是lib.c的全局变量,当我在project.c文件中要用到的时候,即使a【4】是全局变量,但是也只是在它本文件里面有用,别的文件没法用。

但这时project.c要用怎么办呢?在project.c里面改用extern 声明a【4】,他会自动找到别的文件里面的a【4】,这也是为什么如果一个文件有全局变量或者是函数只在本文件里面用的时候要加上static,就是为了防止被别的文件extern声明给弄过去了。

extern声明是不分配内存的,只在别的文件中找有没有定义。

我做过这样的实验,在文件project.c里面用extern声明a【4】,同时又在lib.c里面extern声明a【4】,这导致在链接的时候提示错误,说没有找到a【4】。

所以总的来说extern就是用来使用 别的地方的变量的。

c++中 extern 是什么含义?

用例子给你示范 // 1.cpp int x = 10; // 2.cpp 注意没有包含1.cpp #include using namespace std; extern int x; int main () { cout << x << endl; } //则输出10 两个文件同在一个项目(project)中,你不包含某个文件(cpp)而可以用它内部定义的变量,(里是.pp不是.h, 因为在.h中定义的数据不能在.cpp中用除非这个.cpp包含这个.h文件) 例: // 1.h #include void print() { std::cout << "hello!" << std::endl; } // 2.cpp #include using namespace std; // 以上两句在这个例子中可以不要 extern void print(); int main () { print(); } 就会出错因为1.h中的void print();在不包含它的文件中是不可调用的,即使在声明了extern 也于事无补,如果你将这个例子中的1.h名字换成1.cpp就对了! 从这些可以看出来,extern在这里起的作用是告诉编译器,你这个print()已经在某个.cpp中已经定义了,这里只不过是声明一下有这个东西,然后拿来用一下。

定义只能出现一次,声明却可出现多次,也就是说extern声明可在多个文件中用(包括.h) 还有,你还可以屏蔽extern声明,如第二个例子中的第二个.cpp文件可以改成 #include using namespace std; // 这里以上两句不能省略,因为,这里extern void print();函数已经不起作用了,在这里调用的而是本文件中定义的void print()函数,其中用到了cout,endl;他们来源于std:: extern void print(); void print() { cout << "world!" << endl; } int main () { print(); } // 输出结果为world! 还有一个extern "C"就不用说了,用这个可以允许C++程序中调用C的函数!

C语言中extern用法

#include "123.h"/*123.h中放你的其他函数*/ extern int func();/*这句跟用int func();一样,extern只起到标识作用,好让我们知道是外部函数而已*/ main() { …… } 你肯定是没加#include "123.h"吧,要是没有它,你的程序也不知道去哪找func()啊,不能光用extern

static与extern都是什么意思,有什么作用?

static 和 extern都是用来修饰全局的变量(局部的static实际也是全局的) static修饰的变量 只有你的包含那个变量定义的源代码文件可以访问 extern定义的变量的哪个源文件都可以访问 只要声明了就可以

extern用法

extern 都是对全局变量来说的,你既然将a(int)已经定义到了main函数中了,也就是说:a 的作用域就是main了,不然作用域不久不起作用了吗 如果你要将main中的那个int a用到f中,那是不可以的,但是你可以讲a(int)声明(定义)为全局变量,然后用extern就可以了(如果f和main不在一个.cpp中) 至于extern的具体用法,我曾经回答过这个问题,而且答案非常详细,/z/q660859045.htm (snpsprcsac)你可以看看! .h和.cpp是“独立”的,但有不是完全独立的,.h中用extern就可以用.cpp中定义的变量(常量)了,但翻过了不行(我在extern中也说到了这个问题)还有就是, 一般情况下,如果有程序中有类的话,类的定义在*.h中,对应的就有类的实现在*.cpp(名字一样)中! 你最后一个问题,问的不是很清楚,不知对不对的上!

wordpress外贸集团企业主题 wordpress高级推广外贸主题

wordpress外贸集团企业主题,wordpress通用跨屏外贸企业响应式布局设计,内置更完善的外贸企业网站优化推广功能,完善的企业产品营销展示 + 高效后台自定义设置。wordpress高级推广外贸主题,采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器,根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行自适应显示; 完美实现一套主题程序支持全部终端设备,保证网站在各...

DiyVM独立服务器:香港沙田服务器,5M带宽CN2线路,L5630*2/16G内存/120G SSD硬盘,499元/月

diyvm怎么样?diyvm商家VPS主机均2GB内存起步,三个地区机房可选,使用优惠码后每月69元起;DiyVM独立服务器开设在香港沙田电信机房,CN2线路,5M带宽,自动化开通上架,最低499元/月,配置是L5630*2/16G内存/120G SSD硬盘。DiyVM是一家成立于2009年的国人主机商,提供的产品包括VPS主机、独立服务器租用等,产品数据中心包括中国香港、日本大阪和美国洛杉矶等,...

俄罗斯vps主机推荐,怎么样俄罗斯vps俄罗斯vps速度怎么样?

俄罗斯vps速度怎么样?俄罗斯vps云主机节点是欧洲十大节点之一,地处俄罗斯首都莫斯科,网络带宽辐射周边欧洲大陆,10G专线连通德国法兰克福、法国巴黎、意大利米兰等,向外连接全球。俄罗斯vps云主机速度快吗、延迟多少?由于俄罗斯数据中心出口带宽充足,俄罗斯vps云主机到全球各地的延迟、速度相对来说都不错。今天,云服务器网(yuntue.com)小编介绍一下俄罗斯vps速度及俄罗斯vps主机推荐!俄...

extern为你推荐
移动开发移动应用开发好就业吗开发管理项目管理有几个阶段?宵云< >感交集 <>宵云外 <>海为家 <>思而行 <>窍生烟 <>面威风校园网络拓扑图大学校园网拓扑图校园网络拓扑图帮我设计一个校园网络拓扑结构图点对点短信是什么联通有没有短信套餐?网络接入wifi显示网络拒绝接入什么意思混乱模式植物大战僵尸中怎么用混乱模式开启隐藏关?特别是隐藏小游戏.听说要改什么文件名,但是怎么改?改后怎么进...网络营销讲师谁能说说哪里有好的互联网营销培训讲师老师?价格咨询造价咨询公司是干嘛的 造价咨询公司怎么样
台湾虚拟主机 域名主机管理系统 万网域名解析 谷歌域名邮箱 cn域名个人注册 独享100m godaddy续费优惠码 监控宝 iis安装教程 创宇云 parseerror lighttpd 卡巴斯基永久免费版 圣诞促销 七夕快乐英文 qq对话框 美国免费空间 paypal注册教程 常州联通宽带 中国电信测速器 更多