关于C语言中extern声明外部变量的问题!

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:41:59
在一个文件中声明了一个外部变量A,而在另一个文件中用extern A声明,就可以用这个变量。

那么假如我声明了很多外部变量,已经记不清了,比如说已经声明了3、4个外部变量A,分别在1,2,3,4号文件中声明,那么如果我在第5个文件中用“extern A”,那么会用到哪一个文件中的外部变量A呢?

用了extern,就表示这个变量是全局的和动态的,不存在使用哪一个的问题.比如3号文件的int A变成289了,那么所有其它4个文件的A都会同时变成289.如果后来5号文件的A变成78,那其它所有4个文件的A也会同时变成78.所以extern是动态的而且是全局的.
虽然定义这么多A,但所有的文件同时使用一个A.只要指定extern A,不管你在5个文件的哪一个文件里指定效果都一样.

几个文件组成一个总的程序,他们中间只能有一个main(), 其它是函数和子程序,也许有一两个头文件。

当头文件内容有冲突时,应当用宏语句控制插入了哪个则不插入那个。

函数名和变量名有冲突时,也要用宏语句控制:“如果没有定义A则定义A为什么”。

extern A 可以有很多很多个,但全局量A的声明只能有一个。

重复定义(声明) A,编译时会有警告信息。

extern A 会在最靠近这个语句所在的函数块的外层寻找。

采用多文件时,一定要考虑它们组成的总程序的样子,如同一个程序般地去做语法分析。

应该可以指明文件的