extern的详解

extern 的用法:

       1.extern一般放在函数名前或者变量前起声明作用,以提示函数或者变量的定义在别的文件中,提示编译器遇到此变量和函数时去其他模块寻找定义。                  

       2.extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++。

注明:用extern声明变量的时候尽量不要定义,这样容易出错,比如在test1.h中声明定义一个变量 extern int i=1;在test.cpp中加test1.h的头文件调用它,是可以的,在test2.cpp中继续加test1.h的头文件调用,则在编译的时候,会把int i定义两次,编译器会报重复定义的错误。只调用一次的话是可以的,

所以在.h中声明,在.cpp中定义的话,这个全局变量可以重复使用。所以只在头文件中声明          extern 和static,const之间的区别:                                                                                                                                    static不可以和extern连用:                                                                                                                                                extern 表明该变量在别的地方已经定义过了,在这里要使用那个变量.
               static 表示静态的变量,分配内存的时候, 存储在静态区,不存储在栈上面.                                                                                           C++中const修饰的全局常量据有跟static相同的特性,即它们只能作用于本编译模块中,但是const可以与extern连用来声明该常量可以作用于其他编译模块中, 如extern const char g_str[];                                                                                                            


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值