C语言编译原理问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:19:28
文件A,B和其他一些文件编译之后一起生成一个xxx.bin文件。文件A里面已经include headf1.h,现在想在文件B中也include headf1.h,请问这样做之后在编译方面有什么影响和变化?
多包含一个头文件会有什么影响?
在文件A中调用了文件B中的函数funcitonB(),而在functionB()中要用到静态的全局变量a 请问a的内存使用期限是多久?
还有,extern 型的全局变量的内存使用期限是多久?
用malloc开辟的空间是在哪里面?是不是就是所谓的ram,如果不是与ram有什么区别呢?
这些问题我迷茫很久了,请高手不吝赐教!!!感激不仅!!!

第一个问题:编译时是否有影响无关紧要只是你的源文件变大了,但是执行起来是没有影响的。
第二个:采用静态全局变量是为了在连接多个文件时防止重名问题出现,因为程序员在编程时不会一个人完成一个较大程序,必需要分工,每个人都用自己的文件来写程序,这样在多个文件中可能会把名字起重了,比如在本文件中用static 类型 a定义后,a就只能是B文件的全局变量,这时A文件也可以用static 类型 a来定义,但是它仅限于A文件,当然如果你不把A文件和B文件合在一起就没啥意义了,可以说如果B文件的执行结束了,这个静态全局变量就被释放了。
第三个:只要应用程序结束,变量就释放了
第四个:开辟的空间放在内存中,也就是ram(随机存取存储器),你理解的对

内存开辟空间,RAM是只读属性的内存空间,不可写。

(:

???????????????????????????

编译时是否有影响无关紧要只是你的源文件变大了,但是执行起来是没有影响的!!!!!!!!!!!!

没有看懂,叙述清楚点,估计能整~~~~!