extern关键字

extern关键字在C++中主要用来修饰变量和函数,确保它们能在不同源文件间共享。当用extern修饰变量时,表示变量已在其他地方定义,需要在此处声明。对于函数,extern通常是可选的,因为函数声明默认就有extern属性。extern "C"用于C++中,目的是兼容C语言的链接方式,保证C和C++混合编程时的函数调用正确性。
摘要由CSDN通过智能技术生成

extern 关键字:
与extern 对应得关键字是static,被它修饰得全局变量和函数只能在本模块中使用。

  1. 修饰变量
  2. 修饰函数
  3. extern “C”

1. extern 修饰变量:

.cpp的变量要在另一文件中使用,需要用extern进行声明。
.h的变量要在另一文件中使用,可以加头文件包含或extern进行声明。

//1.cpp
int j = 0;

// main.cpp
#include<iostream>
using namespace std;
extern int j;
int main()
{
	cout << ++j;
	return 0;
}

2. extern 修饰函数:

函数也有声明和定义,但由于函数的声明和定义是有区别的,函数的定义是有函数体的,所以函数的声明和定义都可以将extern省略掉,反正其他文件也是知道这个函数是在其他地方定义的。

3. extern “C” 作用:

extern "C"是实现C与C++混合编程的。extern "C"是C++提供的一个连接交换指定符号,告诉C++这段代码是C函数。

  1. cpp调用C中的函数/变量
  2. c中调用cpp的函数/变量

例子: cpp调用C中的函数

  1. 在c中实现函数add:
int add(int a, int b)
{
	return a + b;
}
  1. 在cpp中调用该函数:
#include <iostream>

using namespace std;

extern "C" int add(int a,int b);

int main()
{
	cout << add(1, 2) << endl;

	return 0;
}

例子: C调用cpp中的函数

  1. 在cpp中实现函数add:
extern "C" int add(int a, int b)
{
	return a + b;
}
  1. 在c中调用该函数:
#include <stdio.h>

extern int add(int a, int b);
int main()
{
	printf("%d", add(1, 2));
	return 0;
}

参考网址:
http://www.cppblog.com/haosola/archive/2014/04/26/206722.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值