关键字

extern:

    在调用外部变量和函数之前,需要先声明他们。对外部变量用extern关键字开始。儿对于函数,此关键字可有可无。

    多个变量被不同的编译单元(.cpp文件)定义,若无此关键字,编译器就会认为它需要处理的是一个不确定定义,这样就会导致连接器报错。因为其在多个编译单元中定义了。

static:

    包含static关键字的变量和函数声明,只有在当前编译单元中才是可见的,称为静态连接。无此关键字的则可以从程序的任意编译单元中访问,称为外部连接。

    通常情况下,会把external变量和函数声明放在头文件中,并且把该文件在所有需要他们的文件中包含一次:

    #ifndef RANDOM_H

    #define RANDOM_H

    extern int randomNumabers[128];

    void populateRandomArray();

    #endif

原文地址:https://www.cnblogs.com/ruoke9/p/5855477.html