Extern Int i; indicating that the i here is just a declaration, otherwise I will see the definition for global variables, it is possible to violate the definition method (ODR) extern foo (); turn the function "in other local definitions" becomes significant The same name constant can appear in different compilation units, and the value can be different! //------foo.c------------------------------ / /--------bar.c---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --- Export Foo () {}; export template