extern的几种用法


一般来说,extern关键字用于三种场合:

1、用于头文件预编译时对于C语言编译的声明,如常见的:

    #ifndef _shader_h_

    #define _shader_h_

    #ifdef _cplusplus

    extern "C"{

     }

#endif

#endif

    一般这种情况是表示在C++中引用C语言中的函数和变量,如果C++调用一个C语言编写的.DLL时,当包括.DLL的头文件或声明接口函数时,应加extern "C" { }

 2、用于定义外部变量。

    extern GLint xParam;

   仅仅声明xParam是个外部变量,而其实际定义是在GLint xParam=0的语句中定义的。

  声明和定义是完全不同的两个概念,个人理解为声明更类似于引用,这样可以避免在LINK时产生重复定义,某个函数到其他的OBJ文件中需要定义(内存地址)时产生冲突出错,但是注意并不是所有的变量都能用extern声明,只有全局变量并且没有被static 声明的变量才能声明为extern。 如果你不想自己的全局变量被其他文件引用,就加上static声明。

 

3、用于函数声明。

   函数的声明与定义和变量类似,仅仅是暗示这个函数可能在别的源文件里定义。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值