查看: 1808|回复: 1
打印 上一主题 下一主题

嵌入式C语言面试题每天一题(10)

[复制链接]
跳转到指定楼层
沙发
发表于 2014-8-11 10:03:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

10. 嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。


这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下:
int *ptr;
ptr = (int *)0x67a9;
*ptr = 0xaa55;


一个较晦涩的方法是:
*(int * const)(0x67a9) = 0xaa55;


即使你的品味更接近第二种方案,但我建议你在面试时使用第一种方案。


回复

使用道具 举报

板凳
 楼主| 发表于 2014-8-11 15:43:41 | 只看该作者
这么有用的资料,为何没人顶?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表