设定指定内存位置的值
来源:互联网 发布:p2p网络借贷暂行办法 编辑:程序博客网 时间:2024/09/21 06:34
嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa55。编译器是一个纯粹的ANSI编译器。这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下:
int *ptr;
ptr = (int *)0x67a9;
*ptr = 0xaa55;
一个较晦涩的方法是:
*(int * const)0x67a9 = 0xaa55;
*((int * const)0x67a9) = 0xaa55;//ok
即使你的品味更接近第二种方案,但我建议你在面试时使用第一种方案。
要对绝对地址0x100000赋值,我们可以用
*(unsigned int*)0x100000 = 1234;
那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么做?
首先要将0x100000强制转换成函数指针,即:
(void (*)())0x100000
然后再调用它:
*((void (*)())0x100000)();
用typedef可以看得更直观些:
typedef void(*)() voidFuncPtr;
*((voidFuncPtr)0x100000)();
阅读全文
0 0
- 设定指定内存位置的值
- ListView设定指定位置的一些注意
- C#控制台基础 在数组指定的位置,设定指定的值
- MDK(KEIL)中设定变量或数组到指定的位置
- MDK(KEIL)中设定变量或数组到指定的位置
- 在指定位置显示string 的值
- PHP 删除数组指定位置的值
- 链表输出指定位置的值
- 如何设定spring配置文件的位置
- 设定最外层滚动条的位置
- OpenCV设定窗口显示的位置
- c# 弹出窗体的显示位置设定
- scrollView初始位置设定问题的解决方法
- 10.3 设定框架的显示位置
- yii2-js文件加载的位置设定
- 如何设定指定logger的日志级别
- UIBarButtonItemSystemItemFixedItem设定指定宽度的barButtonItem
- 扫描指定位置的指定文件
- EL表达式两个foreach嵌套循环
- Node.js学习之TCP聊天程序
- selenium环境搭建
- Spark性能优化指南——高级篇
- 常用激活函数比较
- 设定指定内存位置的值
- Bootstrap 模态框提交表单
- 安桌通过包名启动应用和关闭应用
- MaxComputeSQL-列转行和行转列
- JAVA正则表达式
- git快速入门之一:创建本地仓库并同步到远程
- nginx代理跨域,根据路径参数改变目标服务器地址
- java 学习视频教程分享
- tf.sub/tf.mul/tf.neg等api废弃