由变量对齐引发的问题

最近在将一个由RVDS2.0开发的工程,迁到RVDS4.0后,出现了奇异的问题。一个函数在调用一个数组时出现崩溃。最终确认是因强制转换,引发变量地址对齐的问题。
  原数组定义为: unsigned char buff[]; 但在引用时为, lcd_show((unsigned short *)buff).  因char在内存中可能是奇地址,导致不能正常存取。
  解决办法也很简单:在变量定时加上__align(n)指示。n可取2,4,8等。
发布了25 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/jamsan_n/article/details/12997429