函数和变量都有声明和定义两个写法.声明的目的是告诉别的代码这个变量的名称,而定义比声明多了一个功能,除了告知名称以外,还会为这个变量分配内存.对于函数来说,加不加extern都没有关系,因为有函数体一定是定义,加extern也会被忽略,而没有函数体的就是声明, int add(int a, int b); 等价于 extern int add(int a, int b); 如果是变量的话int a; // 定义了一个变量aextern int a; // 声明了一个变量a变量可以有任意个声明,但