extern在C++中的使用:
//file.cpp
#include <stdio.h>
extern "c" //告诉编译器filec.h是用c编译的
{
#include "filec.h"
}
extern “c” //告诉编译器fc函数是c的方式编译的
{
extern void fc();
}
int a1 = 0; //定义全局变量并初始化(c++规定非const的全局变量都是extern,所以和下面的相同)
const int A1 = 1;//定义全局变量,作用域仅仅是本文件
extern a2 =0; //定义全局变量并初始化,作用域不仅仅是本文件,全程序共享
int b1; //定义全局变量并默认初始化为0
extern b2; //声明变量
static int c = 1;//定义静态全局变量,但是作用域仅仅是本文件;其他文件不能通过extern来引用
........
........
#ifdef __cplusplus //C++的自定义宏
extern “c”{
#endif
// 编译方式不同
#ifdef __cplusplus
}
#endif
C++中引入了重载,导致函数的编译方式不同,进入extern c目的是让此段代码以c的方式编译,以便可以被c调用。
extern “c” :用两层含义:1.告诉C++此代码是C编译方式编译的;2.C++代码以C的方式编译
//end