这个void函数是在第二个文件中定义的为什么第一个能直接拿去用呢?第二个使用第一个中定义的全局变量int还需要加extern呢
首先第一个 void print_msg(); 不是直接拿着用,只是一种函数声明(在第一个文件中没有include 包括 void print_msg() 函数的时候)。第二个文件想使用另一个文件定义的全局变量确实要加extern,否则会变成声明在第二个文件的全局变量。
如果需要调用其他.c文件中的函数,在文件中的函数声明前加extern即可,不加extern而直接声明函数也可以,因为声明全局函数默认前面带有extern