关于4字节内存对齐读写的的疑问

Simpleyyt

关于4字节内存对齐读写的的疑问

Postby Simpleyyt » Wed Jul 06, 2016 11:23 pm

4字节内存对齐读写指的是内存地址的4字节对齐,还是读取字节数必须是4的整数。如下是否也有可能引起异常呢?

情况1:

Code: Select all

char c[] = "hello";
c[1] = 'o';


情况2:

Code: Select all

uint32 a[] = {1, 3};
uint16 *b = (uint16 *)a;
b[1] = 2;

ESP_Rubin
Posts: 222
Joined: Wed Jun 29, 2016 11:59 am

Re: 关于4字节内存对齐读写的的疑问

Postby ESP_Rubin » Wed Aug 03, 2016 12:11 pm

你好,
4字节对齐只是在我们对flash读写时候有要求。
您的第二段代码,其实执行起来没有问题,主要是看你想要什么样的结果,如果你是想通过b指针来修改a数组的a[1]的值,那是没有办法做到的。

Who is online

Users browsing this forum: No registered users and 15 guests