当使用extern关键字修饰变量(未初始化),表示变量声明。
当在另一个文件中,为extern关键字修饰的变量赋值时,表示变量定义。
声明在头文件里面,定义的文件里面包含有该声明的头文件。
header.h文件如下:
#ifndef HEADER_H
#define HEADER_H
//定义global_x变量 ,在任何包含了该文件的文件中都可以使用global_x变量
int global_x = 20;
#endif
主程序如下:
#include <iostream>
#include "header.h"
extern int global_x;//声明 global_x 变量
int main(){
std::cout << "global_x = " << global_x << std::endl;
return 0;
}
是一种间接调用的关系吧。