代码中声明的变量(静态或全局)首先与整个应用程序代码一起复制到片上闪存 (ROM)。然后它们依次复制到 SRAM 中。 静态和全局变量在 SRAM(不是堆栈)中分配地址,而函数中的局部变量则在堆栈(SRAM 的一部分)中分配地址。 我的疑问:通过将变量声明为“const”类型,是否会将变量放置在片上闪存(ROM)中,以便我可以保存SRAM,或者const数据也复制到SRAM中,尽管它们的值没有改变? (LPC17xx 内存架构,Keil IDE 编码)?
Update: const in ROM- In this link,the answer given by Mike Kleshov confirms that const data is placed in the Onchip Flash(using Keil compiler).
最佳答案
是的 - 在大多数微 Controller 上,将变量声明为 const
会导致它存储在只读存储器中。
关于变量的 const 关键字(SRAM 或片上闪存)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758183/