编译的时候(假如编译器是VS),是以源文件cpp文件为单位,编译成一个个的obj文件,然后再通过链接器把不同的obj文件链接起来.如果一些变量或函数的定义是内连接的话,链接器链接的时候就不会拿它们去与obj比较看有没有重复定义,一个源文件中即使是extern声明的变量或函数也不能使用另外一个源文件中的内连接的变量或函数.而如果是外连接的话则需要在不同的obj中比较是否有重定义.除了做这样的检查外,链接器还会查看通过extern修饰的变量或函数声明在其他obj中的定义.综上定义如下: 内部连接:如…