C++ extern到底怎么用?

C++ extern到底怎么用?

基本解释

extern也可用来进行链接指定;也可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

说人话,即有以下两个作用:

  • 与“C”连用,如extern “C” void fun();告诉编译器按C的规则去翻译
  • 修饰声明全局变量或函数,其声明的变量和函数可以在其它模块(文件)中使用,注意,这只是一个声明而不是定义,具体的定义要在具体的模块中完成

例子

举个例子,我们想要声明一个long int runtime_minute变量供多个模块使用:

//time.h
#ifndef TIME_H
#define TIME_H
//首先我们在time.h中进行以下声明:
extern long int runtime_minute;
#endif //TIME_H

在头文件中通过extern声明的变量并没有定义,所以要在time.cpp中给出定义:

//time.cpp
#include "time.h"
//在time.cpp中给出runtime_minute变量的具体定义:
long int runtime_minute = 0;

这时,如果想要在time2.cpp中使用这个定义在time.cpp中的runtime_minute变量,只需要包含time.h这个头文件即可:

//time2.cpp
#include "time.h"
#include 
//在time.cpp中给出runtime_minute变量的具体定义:
int main(){
    runtime_minute++;
    std::cout<<runtime_minute<<std::endl;
    //输出为1
    return 0;
}

你可能感兴趣的:(c++)