const讨论



Huang  23:34:58
全局下,const放在ram的常量数据区
倏地飞  23:35:31
你加了那句 bin没变大?
Huang  23:35:44
局部函数里,你编译的时候肯定是需要占用rom区 存储这个值得
倏地飞  23:36:02
全局的时候就不占了吗?
倏地飞  23:36:10
应该占的吧?
Huang  23:36:22
全局在编译的时候不占用
倏地飞  23:36:35
不应该啊
Huang  23:36:44
运行的时候 就直接分配对应的ram区域了
倏地飞  23:37:48
至少这个语句要占空间的
倏地飞  23:37:53
怎么会不占呢?
倏地飞  23:38:03
除非他是跟宏一样
倏地飞  23:38:05
替换掉
Huang  23:38:06
我再验证下
倏地飞  23:39:55
貌似占的
Huang  23:40:53
占 必须占
倏地飞  23:40:56


倏地飞  23:41:00
必须占
倏地飞  23:41:15
//const char *cst = "ccccccccccccccccccccccc";


倏地飞  23:41:42
这句话占了48个字节的ROM空间
Huang  23:44:25
const char *cst = "c";
const char *cst = "caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
Huang  23:44:39
这样编出来是一样大的
倏地飞  23:44:59
是吗? 我验证下
倏地飞  23:45:27
果然是
Huang  23:45:29

倏地飞  23:45:41
为什么?
倏地飞  23:46:30
我估计是不是这样
Huang  23:46:41
因为是指针变量
倏地飞  23:46:45
只读存储区那块 是固定的
倏地飞  23:47:07
我感觉应该如果你把这个字符串加到一定的大小他就会变大
Huang  23:47:32
const char cst[] = "c";
const char cst[]= "caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
倏地飞  23:47:32
一定是这样的
Huang  23:47:45
这样会变大
倏地飞  23:48:40
你这样是前面变大了
倏地飞  23:48:45
跟后面没关系
倏地飞  23:49:01
指针只占4字节
倏地飞  23:49:06
数组就占多了
发送消息内容超长,请分条发送。
发送消息内容超长,请分条发送。
倏地飞  23:50:10


倏地飞  23:50:17
这样也变大了
Huang  23:50:27
擦 
倏地飞  23:50:57
我猜测是这样的 只读存储区那块 开始是固定的 当你超过那个固定值他也跟着变大
倏地飞  23:51:20


Huang  23:51:46
也就是说有开个固定的存。超过这个固定的值 就会再开一个新的存储区
Huang  23:51:56
应该是这样
倏地飞  23:52:15
对的 我又加了三个ccc 大小没变
倏地飞  23:52:31
所以说他应该是分片的 不是按需分配的
倏地飞  23:53:24
所以之前我猜测的const估计没错
倏地飞  23:54:14
"aaaa"会占用到只读存储区,前面的占用全局数据区
Huang  23:54:44

Huang  23:54:50
没错
倏地飞  23:54:51
RAM里面加载的程序我之前也考虑一个问题
倏地飞  23:54:59
就是ROM一般都比ram大得多
倏地飞  23:55:16
所以ram不是一次性装载ROM里面的代码段的
倏地飞  23:55:37
他应该是有他的一套规则 
倏地飞  23:56:07
转载一小段之后给cpu去执行
倏地飞  23:56:18
执行完再继续装载
Huang  23:56:47
这个和你用的什么rom有关
Huang  23:57:05
也就是flash 
倏地飞  23:57:13

倏地飞  23:57:27
ROM一般都比ram大
Huang  23:57:39
spi flash允许程序之间在flash中运行
Huang  23:57:51
nand flash不允许直接运行
Huang  23:58:02
一定要拷到ram中运行
Huang  23:58:15
我们公司的就是ram比rom大啊 
Huang  23:58:33
256M FLASH 512M DDR3RAM
Huang  23:58:43
我去洗澡准备睡觉
倏地飞  23:58:45
我擦
倏地飞  23:58:47
好的
Huang  23:58:48
老婆在催啊
Huang  23:58:52
我了个去 
倏地飞  23:58:56
今天分析了下
Huang  23:58:57
明天再继续搞
倏地飞  23:59:02
好多不清楚了搞明白了
Huang  23:59:08
嗯  好样的
倏地飞  23:59:08
继续搞
倏地飞  00:00:07
mtk25平台默认的是128Mbit flash memory 和 32Mbit SRAM,
倏地飞  00:00:28
就是我们通常所说的是16M ROM和4M RAM
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值