const 声明的变量不一定是只读的?
2024-01-09我一直以为 const 声明的变量一定是只读的,并且也一定会存放在 FLASH 中,直到在 103 的 map 文件中看到了这个变量: 声明如下(函数体外): __I 声明如下: 可以看到,虽然使用 const 修饰变量为只读,但是 MDK 编译器仍将这两个数组放在了 RAM 区(全局变量)。这意味着,这个变量仍可写(通过指针方式修改),只是不能直接修改而已,还白白浪费了 RAM 空间,因为从实现来看,根本不需要修改这个表,完全可以将其放入 FLASH 空间。 测试发现,是 volatile
全局变量的初始值,是在哪里赋值的?
2024-01-09电子发烧友网>嵌入式技术>全局变量的初始值,是在哪里赋值的? --> 单片机(614646) 单片机(614646) 嵌入式(279083) 嵌入式(279083) 变量(27972) 变量(27972) 启动程序(6835) 启动程序(6835) --> 声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉 发布 查看更多 已全部加载完成 关注 关注