|
发表于 2010-1-12 13:00:09
|
显示全部楼层
Post by sybaselu;2063580
- align(4) unsigned int i_v;
- align(4) unsigned int i_a[100]
复制代码
第一个声明表示变量i_v的内存地址必须能被4整除或4的倍数,那么第二个对齐的数组什么意思呢?
我认为第二种对数组的对齐声明表示在该数组中,内存的一次读写按照4个byte进行的,就是说
该数组的一次读取的是4个字节,而不是说该数组的首地址是4字节的对齐的。
再者
- typedef packed struct
- {
- uint32 a;
- uint32 b;
- char c;
- long d;
- }DT_X;
- align(2) DT_X dt_v;
复制代码
是不是有些多余?
我认为第二种对数组的对齐声明表示在该数组中,内存的一次读写按照4个byte进行的,就是说
该数组的一次读取的是4个字节,同时也是说该数组的首地址是4字节的对齐的。
我觉得不多余,是让struct结构体的首地址是4字节的整数倍。 |
|