由变量对齐引发的问题

来源:互联网 发布:交友网站程序源码 编辑:程序博客网 时间:2024/06/05 18:48
最近在将一个由RVDS2.0开发的工程,迁到RVDS4.0后,出现了奇异的问题。一个函数在调用一个数组时出现崩溃。最终确认是因强制转换,引发变量地址对齐的问题。
  原数组定义为: unsigned char buff[]; 但在引用时为, lcd_show((unsigned short *)buff).  因char在内存中可能是奇地址,导致不能正常存取。
  解决办法也很简单:在变量定时加上__align(n)指示。n可取2,4,8等。
原创粉丝点击