linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > 嵌入应用 >
栏目导栏
资料搜索
热门文章
·Symbian编程VC开发环境设置
·基于ARM的嵌入式Linux开发平台
·嵌入式Linux用Qt Designer快速
·S3C2410X开发总结及心得
·轻松控制uClinux嵌入式开发过程
·嵌入式操作系统uCLinux
·uC/OS和uClinux的比较
·uClinux系统分析
·Porting uClinux to Samsung S
·在Windows上应用uClinux
·sqlite嵌入式数据库在arm-linu
·嵌入式设备上的 Linux 系统开发
·七款嵌入式Linux操作系统简介
·e680i手机嵌入式Linux 研究
·嵌入式系统和嵌入式操作系统
最新文章
·在嵌入式Linux环境下制作QPF字
·ARM Linux开机后自动运行特定程
·构建基本的嵌入式Linux根文件系
·自己动手打造嵌入式Linux软硬件
·MP3播放器madplay在ARM的移植
·Linux 2.6.11 MTD驱动情景分析
·ARM中C和汇编混合编程及示例
·BusyBox 简化嵌入式 Linux 系统
·使用虚拟机嵌入式Linux开发前的
·用NFS服务开发ARM Linux程序的
·虚拟机Linux系统下连接ARM开发
·嵌入式Linux系统下的网页浏览器
·Linux移植PSP详细步骤
·浅析armlinux 2.4.19中断irq分
·Linux 的魅力: 开发 Nokia N80
Google
 
const指针变量的一个应用
[ 作者:  加入时间:2007-11-27 11:41:03  来自:Linux联盟收集整理 ]
const变量,在网上的嵌入式面试题中就有一个很经典的题目.我想很多人一定都看到过.你都理解和运用过吗?
我有这么个实例和大家分享一下:
我们的代码中固化了很多菜单条目,形式如下:
unsigned char * pMenuItem[N]
pMenuItem[0]= "test menu item0";
..........
 
 
但是大家有没有认真想过这段代码缺点在哪里?
我查了一下网上的资料,前面的菜单条指针据说在新版本中会被自动设置成指向const的指针(指向const的指针,而指针本身并不是const),我没有测试.这样至少降低了我们修改这个串的风险。但是用dump功能看一看你的指针变量地址,他还是在ram中。这些地址我们完全是不需要改动的,我们为什么不把它也放置在flash中呢?
想一想,当有一大堆的菜单条要初始化的时候有很多.data段数据会从flash中copy到ram中,我没仔细考虑将浪费多少处理机时间,也许微不足道,但是既然很简单地能解决这个问题,为什么不这么做呢?
 
unsigned char * const pMenuItem[N];
pMenuItem[0] = "test menu item0";
 
在我的环境中,pMenuItem0 会被放置到.rodata中,这将省去初始化的工作,注意一下const放置的位置。
 
不好意思,这一段东西我没去测试了。
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息