没有合适的资源?快使用搜索试试~ 我知道了~
extern在C和C++中的作用
需积分: 50 20 下载量 117 浏览量
2015-11-30
16:32:02
上传
评论 1
收藏 18KB DOCX 举报
温馨提示
试读
1页
本文组要讲述了extern在C++中的作用,与在C中的作用相区分,帮助大家更好的理解。
资源推荐
资源详情
资源评论
extern 用法
extern 解析:
extern 是 C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键
字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头
文件中对本模块提供给其它模块引用的函数和全局变量以关键字 extern 声明。例如,如
果模块 B 欲引用该模块 A 中定义的全局变量和函数时只需包含模块 A 的头文件即可。这样,
模块 B 中调用模块 A 中的函数时,在编译阶段,模块 B 虽然找不到该函数,但是并不会报
错;它会在连接阶段中从模块 A 编译生成的目标代码中找到此函数。
与 extern 对应的关键字是 stati c,被它修饰的全局变量和函数只能在本模块内使用。
因此,一个函数或变量只可能被本模块使用时,其不可能被 extern 修饰。
extern "C" 解析:
在 C++中,我们会经常看到 extern “C” 这种用法,但是大家知道他的具体含义是什
么吗?现在小编就来谈一下自己的理解。
首先,extern "C"指令中的 C,表示的一种编译和连接规约,而不是一种语言。C 表
示符合 C 语言的编译和连接规约的任何语言,如 Fortran、assembler 等。
现在的程序中一般 C 和 C++是混合使用的,但是在 C++的编译环境下如果想引用定
义在 C 中的函数,此时就需要用到 extern “C”。原因如下:
因为 C 和 C++的编译风格不一样,C++中由于存在函数重载,多态等等,很多函数
的名字是相同的(但是参数个数或者参数类型不相同),这就导致了 C++在编译一个函
数时,会根据这个函数的函数名以及参数个数、参数类型来编译(保证编译后的唯一性)
但是 C 编译就不需要,它只需要根据函数名称编译即可。所以如果在 C++中引用 C 的函
数,编译时就不能按照 C++的风格编译,extern “C”的作用就是指示下面的这些函数
(被括号括起来的)需要按照 C 语言的编译风格来编译,而不是 C++的编译风格。
资源评论
baidu_30381773
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功