在像C和C++这样的编程语言中,人们经常提到静态和动态内存分配。我理解这个概念,但是“所有内存都在编译时被分配(保留)”这个短语总是让我感到困惑。
就我所知,编译将高级别的C/C++代码转换为机器语言并输出一个可执行文件。在编译文件中如何“分配”内存?难道内存不总是通过虚拟内存管理等东西在RAM中分配吗?
按定义,内存分配不是一个运行时概念吗?
如果我在我的C/C++代码中创建了一个1KB的静态分配变量,那么可执行文件的大小是否会增加同样的数量?
这是其中一个页面上使用“静态分配”标题的页面。 回归基础:内存分配,一次历史之旅
就我所知,编译将高级别的C/C++代码转换为机器语言并输出一个可执行文件。在编译文件中如何“分配”内存?难道内存不总是通过虚拟内存管理等东西在RAM中分配吗?
按定义,内存分配不是一个运行时概念吗?
如果我在我的C/C++代码中创建了一个1KB的静态分配变量,那么可执行文件的大小是否会增加同样的数量?
这是其中一个页面上使用“静态分配”标题的页面。 回归基础:内存分配,一次历史之旅