C++——extern关键字作用

extern会引用一个还没声明的变量或者函数,这个变量和函数在其他地方声明了,通常是全局变量或其他函数(不是静态),可能在当前文件,也可能在其他文件

作用:声明外部变量或函数,让编译继续往下


使用场景

C场景

//extern_main.c
#include
 int main(){
    //先声明,而实现在下面,编译不会报错;不加extern编译会报错
    extern int var_main;//文件内

    extern int var_other;//文件外,用extern告诉编译器早其它地方已经声明定义,在这里直接访问

    extern void func_main();//文件内

    extern void func_other();//文件外

    func_main();//文件内

    func_other();//文件外
    printf("main var_main = %d\n",var_main);
    return 0;
}

int var_main = 100;
void func_main(){
    printf("man var_main = %d\n",var_main);
}
//extern_other.c
#include <stdio.h>
int var_other = 99;

void func_other(){
    printf("func_other var_other = %d\n",var_other);
}

注意:

使用gcc命令生成可执行文件需将两个.c文件输入

gcc extern_main.c extern_other.c -o extern

C++场景

要使用C风格的代码

//extern_cpp.cpp

#include <stdio.h>

  extern "C" int var_c;
  extern "C" void func_c();

int main()
{
    func_c();
    var_c =100;
    printf("extern_cpp var_c = %d\n");
    
    return 0;
}

分别编译生成.o文件

gcc extern_c.c -c

gcc extern_cpp.cppp_c

两个.o文件链接

gcc extern_c.o extern_cpp.o -o extern_cplus_c

输出

./extern_cplus_c

func_c var_c=99

extern_cpp var_c=100

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值