指针问题

raptormk16 2007-11-29 03:20:35
Wince下是不是int 指针只能指向 4的倍数的地址? PC上没这个限制阿,什么原因?
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyhzpk 2007-12-03
  • 打赏
  • 举报
回复
PC上应该已经处理了这种异常,是可以访问的,ARM上不行
lenux 2007-11-30
  • 打赏
  • 举报
回复
如果做应用的话不用管这个,编译器会帮你做的。
要不写一个int * 还要管理指向的地址,对上层来说太麻烦了。
91program 2007-11-30
  • 打赏
  • 举报
回复
不管是PC还是任何系统,做程序而言,使用sizeof()就可以啦。
raptormk16 2007-11-30
  • 打赏
  • 举报
回复
应该是CPU问题,在ARM上 *(int*)p 这种事不能随便干了
xmlv 2007-11-30
  • 打赏
  • 举报
回复
WINCE没研究过,不过这种对齐方式的问题是应该是由你的编译器决定的。如果你的CPU是32BIT的,编译器设置4BYTE对齐的话,那INT型变量一般会被定在4的整数倍的地址上。(你可以打开你的编译器生成的MAP文件,看下全局变量都是被定在哪里的)

PC上,假如你是WINDOWNS系统的话那你用一般的方法是看不到物理内存地址的,你用VC看的只是进程的虚拟内存地址而已。



以上是我的一点见解,有不对的请兄弟们帮忙指点下。
raptormk16 2007-11-29
  • 打赏
  • 举报
回复
不过也是有好处的,扫描内存简单了
CounterHack 2007-11-29
  • 打赏
  • 举报
回复
ARM CPU访问int要4字节对齐,访问short要2字节对齐.

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧