关于extern变量的一些问题

首先,有谁能告诉我extern具体的作用?
接下来是一段报错的代码:
源文件1:

#include <stdio.h>/*包含头文件*/
/*进入主函数*/
 int main(){
     extern int ex;
     printf("%d", ex);
     return 0;
}

源文件2:

#include <stdio.h>
main() {
    int ex;
    ex = 100;

两段代码都在第一行产生错误:

无法解析的外部符号 _ex

然而我那一行根本没有ex啊?
此外整个project报错:一个无法解析的外部命令
这是怎么回事?

只能有一个main函数,另外你把extern定义在main函数之外试试