【发布时间】:2013-11-21 21:05:53
【问题描述】:
我想了解用于应用程序开发的 C 和 C++ 编程中的内存管理。应用程序将在 PC 上运行。
如果我想让一个程序在运行时尽可能少地使用RAM,那么在编程时我需要考虑哪些点?
根据我的理解,这里有两点,但我不确定:
(1) 在 main() 和其他函数中使用最少的局部变量。 由于局部变量保存在堆栈中,即RAM?
(2) 在顶部使用全局变量而不是局部变量。 由于全局变量保存在未初始化和已初始化的ROM区?
谢谢。
【问题讨论】:
-
这根本不是您应该担心的。使用高效的数据结构,避免冗余,学习一些算法。
-
PC 的 ROM 空间在哪里? (不包括 BIOS。)
-
@BitFiddlingCodeMonkey,这是不正确的。全局变量也存储在 RAM 中(在 PC 中)。只是不同的部分而不是堆栈。
-
@Shahbaz 我是一个嵌入式的人。对不起。 :-(
-
你愿意用汇编编写而不是在 C 运行时库中链接吗?这消除了在实际程序入口点和
main之间运行的所有代码,以及它设置的数据,以便库例程工作。您可能会发现以这种方式编程有点不方便。更激进的技术是一次只在内存中保留少量数据,仅足以执行一个基本操作,并在磁盘上读取和写入其他数据。这将使您的程序变慢,并且只会在极端情况下使用。