读书人

怎么理解“编译时分配内存有关问题”

发布时间: 2012-02-06 15:52:45 作者: rapoo

如何理解“编译时分配内存问题”?
谭浩强的那本书上说,全局变量和加static关键字的变量(静态变量),是“在编译时分配内存的”。

问题是:编译时,程序并没有执行。程序不执行,如何分配内存呢?

惭愧得很,在网上查了,并没有结果。

谢谢!

[解决办法]
局部变量那些都是程序进入main后,再申请内存地址,使用..
静态,全局,可以简单理解为main之前申请的
[解决办法]
编译时,程序并没有执行。程序不执行,如何分配内存呢?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
编译时分配内存,并不是指动态分配.

仅仅是把static变量编译成一个地址而已

[解决办法]
我是这样理解的:
那些全局变量和静态变量,编译时就在exe文件中占了一个位置,相对于exe文件的起始地址已经是固定的了.程序加载后这些变量的相对位置已是固定的了.
[解决办法]
如果他们有初始值,就直接写到可执行文件中了。。
[解决办法]
应该是在编译时分配存储空间
内存分配是在程序加载时完成的
[解决办法]
这里的分配是, 编译器产生了一张表, 程序中显示定义了一个变量,就把相关变量的 变量名加入该表,并制定一个预期的地址值....

读书人网 >C语言

热点推荐