当前位置 : 主页 > 手机开发 > ROM >

用于存储字符串文字常量存储池和ROM的字是否相同

来源:互联网 收集:自由互联 发布时间:2021-06-10
我正在阅读Head First C书,我读到我们无法更改字符串文字,因为它存储在一个只读内存的常量内存池中.所以朋友是这个恒定的内存池和系统的ROM都是一回事.或者在ROM以外的内存中还有另一
我正在阅读Head First C书,我读到我们无法更改字符串文字,因为它存储在一个只读内存的常量内存池中.所以朋友是这个恒定的内存池和系统的ROM都是一回事.或者在ROM以外的内存中还有另一个常量的内存池.如果我声明一个字符串它将存储在ROM中,而如果我声明一个int或其他任何东西它将进入RAM?这是真的 不,他们肯定不是一回事.

不要求字符串存储在ROM中;如果是这种情况那么你怎么能将程序从硬盘加载到RAM并运行它?由于ROM不可写,因此无法“加载到ROM”.

对于典型的现代PC级计算机,这意味着字符串文字被加载到RAM的一部分中,该部分在加载完成时变为只读.

当然,对于嵌入式系统,它也意味着字符串文字可以有效地放置在实际的只读存储器(闪存或真正的ROM)中,因为无法有效地修改数据.这对于嵌入式系统来说很方便,其中“代码空间”(闪存或ROM)的数量通常远大于可用RAM的数量.

总而言之,它是一个相当通用的规范:它只是说从程序的角度来看,字符串文字被认为是不可修改的.它没有说明如何实施.文字完全可以修改,即没有任何形式的保护来防止尝试.这并不意味着它突然变得有效,只是实施不是保护你自己.

网友评论