extern用法

转载 2007年09月23日 10:19:00
 

常常见extern放在函数的前面成为函数声明的一部分,那么,C语言的关键字extern在函数的声明中起什么作用?

    答案与分析:
    如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。
  即下述两个函数声明没有明显的区别:extern int f(); 和int f();
    当然,这样的用处还是有的,就是在程序中取代include “*.h”来声明函数,在一些复杂的项目中,
  我比较习惯在所有的函数声明前添加extern修饰。

extern “C”

  在C++环境下使用C函数的时候,常常会出现编译器无法找到obj模块中的C函数定义,从而导致链接失败的情况,应该如何解决这种情况呢?

  答案与分析:

  C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。

  下面是一个标准的写法:

 

//在.h文件的头上
#ifdef __cplusplus
#if __cplusplus
extern "C"{
 #endif
 #endif /* __cplusplus */
 …
 …
 //.h文件结束的地方
 #ifdef __cplusplus
 #if __cplusplus
}
#endif
#endif /* __cplusplus */

深入理解extern用法

一、 extern做变量声明 l  声明extern关键字的全局变量和函数可以使得它们能够跨文件被访问。 我们一般把所有的全局变量和全局函数的实现都放在一个*.cpp文件里面,然后用一个同名的*.h文...
  • z702143700
  • z702143700
  • 2015年07月08日 16:36
  • 6415

C语言正确使用extern关键字

转载请注明出处利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例,分类说明一下。 一、引用同一个文件中的变量#includeint func();int...
  • xingjiarong
  • xingjiarong
  • 2015年08月14日 08:37
  • 25479

浅谈C++中extern的用法

浅谈C++中extern的用法
  • u012333003
  • u012333003
  • 2014年05月14日 19:16
  • 1340

iOS extern使用教程

iOS extern使用教程
  • u013375242
  • u013375242
  • 2015年01月07日 11:15
  • 4974

C++extern用法

extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键。它告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。 总之,每个编译单元都必须遵守“先声明后使用”的原则。 1。对...
  • suxinpingtao51
  • suxinpingtao51
  • 2014年01月14日 11:31
  • 8285

VC中extern的使用

extern为外部连接符号 通常是在定义接口(全局变量)的时候这样使用的,这样的一个声明写在头文件内,供其他文件包含。 这时候extern表示函数的实现部份不在文件内部,在连接的时候统一由连接器处理...
  • yongyu211
  • yongyu211
  • 2012年06月08日 09:36
  • 4609

C++中extern关键字

1. 序言extern是一个关键字,它告诉编译器程序中存在着一个变量或者一个函数,如果在当前编译语句的前面中没有找到相应的变量或者函数,也会在当前文件的后面或者其它文件中定义。因此,extern的功能...
  • wutong_xingkong
  • wutong_xingkong
  • 2016年01月20日 19:09
  • 939

看 VS 2010 对 C++ 0x 支持之 extern template

文 / 李博(光宇广贞)       《上篇文章》聊到了 VS 2010 对 C++0x 的支持在运行期强化上的不佳表现,首先是 IDE 支持得不够理想,内核上对于悬而未决的 constexpr 则直...
  • hikaliv
  • hikaliv
  • 2009年08月23日 19:46
  • 6258

QT项目间使用extern全局变量

在使用到该变量的.c或者.cpp文件中,以extern int Name;声明该变量。 在需要对该变量赋值的.c或者.cpp文件中,以int Name定义该变量。 这种方法不需要包含头文件。...
  • u010845208
  • u010845208
  • 2016年11月24日 15:24
  • 1368

C++ 中 extern const 的用法

原文地址:http://zhidao.baidu.com/link?url=x5_CNFl7DzDsmx99Xrwh0ETMM9mowJicb4JVA7XGFD0CKUe8mL6AuXx1_nKL5j...
  • xiaogugood
  • xiaogugood
  • 2013年08月27日 16:17
  • 1025
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:extern用法
举报原因:
原因补充:

(最多只允许输入30个字)