网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
int main(void) {
int *p = (int *)0x00020000;
*p = 1;
return 0;
}
运行之后,我们继续查看一下该内存地址处的值
可以看到我们操作的内存地址处的值已经变成1了。
在这个地方,我们可以看出表示内存地址值是使用十六进制,因此可以推测右边的内存地址处的值应该是代表了十六个字节。
当然我们也可以继续用代码测试一下
int main(void) {
int *p = (int *)0x00020000;
*p = 15;
return 0;
}
借助这个命令我们可以可视化VxWorks中内存中数据的排布,我们当然还要试一下其他的东西啦。
之前我写过一篇在VxWorks中测试大小端的问题,之前只是简单的用代码进行了测试。现在我们可以结合之前的那篇文章和这篇文章一起来说明这个问题。
我们先观察一下内存地址的排列规则
为了测试,我们选择一个两个字节能够容纳的值,代码如下
int main(void) {
int *p = (int *)0x00020000;
*p = 9999;
return 0;
}
分析可知
9999的二进制表示为00000000000000000010011100001111,十六进制表示为
270F,和图片中是一样的。
继续我么找一个四个字节能够容纳的值,代码如下
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!