C语言中extern的作用

1、声明外部的变量
由于编译是对单个的文件进行编译,所以在编译一个a.cpp文件的时候,若是要在a.cpp中使用b.cpp中的变量,直接使用则编译肯定会报错的,所以这个时候应该用extern修饰在a.cpp中所使用的b.cpp中的变量,这个时候编译器会忽略这个错误,直到链接的时候(“将文件融为一体”)会找到b.cpp中的变量,这样便可以了。extern的作用相当于让编译器在编译阶段忽略这个错误

例:

//a.cpp

extern int a; //并未分配空间,只是通知编译器,在其它文件定义过

printf("%d",a);

//b.cpp

int a = 9;

2、在一个C++文件中调用另一个C++文件中的函数
和第一点是一样的,a.cpp中调用b.cpp中的函数,需要在a.cpp中申明函数是extern的
注意,这个声明,其实就是. h头文件的内容
这个extern可以省略
如果头文件中仅仅是这个函数声明,一是extern可以省略。二是相应的源文件. c不用包含这个头文件
即不需要#include xxxxx. h文件

3、在C++文件中调用C方式编译的函数
主要原因是C++在编译后生成的函数名和C的函数名不一样,需要有一个转化过程,在C++中通过extern "C"修饰函数,可以表明这个函数是C编译的,命名规则就符合C。

//a.cpp C++编译

extern “C” //不加会报错,提示找不到该函数
{
void print();
}

void main()

{

print();

}

//b.cpp C编译

void print()

{

printf("123456");

}
————————————————
版权声明:本文为CSDN博主「晚餐吃什么」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Think88666/article/details/90706719

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值