各位大佬,关于extern 有个问题一直搞不明白。
看到书上关于用extern写到,把变量的定义声明放在所有函数的外面便创建了外部变量。如果当前代码文件使用的外部变量定义在另一个源代码文件中,必须用extern声明该变量,表示引用。例如
/*文件1*/
char example;
/*文件2*/
extern char example;
又特别注明,不要用extern创建变量的外部定义,因为编译器会假定该变量实际的定义在该程序的别处。
那么,如果一个外部变量仅用extern 声明会怎么样?例如
/*文件1*/
extern int a;
/*文件2,已include 文件1*/
a = 100;
这样使用没有问题吗?变量a是在什么时候定义的呢?什么时候分配空间的?
非常感谢。